我正在尝试用javascript:执行此代码
$('#content').replaceWith("<div>" + <?php echo $tableau_Text?> + "</div>");
但对我不起作用。它对我来说什么都不显示。当我将PHP code
更改为静态的东西时,比如:
$('#content').replaceWith("<div>Hello World</div>");
它完全符合这一点。
我的html#内容定义是:--
<div id="content">
<?php echo $show_menu;?>
</div>
知道吗?非常感谢!
更新:
var $tableau_text
如下所示:
$tableau_Text = "<ul class='object_list' id='object_list' data-role='listview' data-inset='true' data-theme='c'>$TableauText</ul>";
其中$TableauText
是相同格式的列表项。
$TableauText = <li class='menuA' id='menuA' data-role='list-divider' data-icon='false'>River Flow</li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Rossiniere</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Montsalvens</a></li>
<li class='menuA' id='menuA' data-role='list-divider' data-icon='false'>Lake Level</li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Rossiniere</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Montsalvens</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Lessoc</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Rossens</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Maigrauge</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Schiffenen</a></li>
<li class='menuB' id='menuB' data-icon='arrow-r'><a href='#' target='foo'>Maigrauge</a></li>
解决方案:我有几个id相同的列表元素,在粘贴到这里后我没有意识到这一点,这让我的代码变得疯狂。。。
试试这个:
$('#content').replaceWith("<div>" + <?php echo json_encode($tableau_Text); ?> + "</div>");
给定:
$TableauText = 'hello world ""';
$tableau_Text = "
<ul class='object_list' id='object_list' data-role='listview' data-inset='true' data-theme='c'>
$TableauText
</ul>";
浏览器将看到:
$('#content').replaceWith("<div>" + "'n <ul class='object_list' id='object_list' data-role='listview' data-inset='true' data-theme='c'>'n hello world '"'"'n <'/ul>" + "</div>")
哪个渲染为
hello world ""
不要将php代码视为变量
试试这个
$('#content').replaceWith("<div><?php echo $tableau_Text?></div>");
除非<?php echo $tableau_Text?>
输出用引号括起来的相关文本,否则将导致无效的字符串串联,从而导致JavaScript语法错误。但是,由于PHP是在JavaScript到达浏览器之前执行的,因此根本不需要使用字符串串联。
一个反问题:你的代码是吗
$('#content').replaceWith("<div>" + <?php echo $tableau_Text?> + "</div>");
在.js文件中?
如果是这样的话,这需要工作。在包括js 之前,你应该这样做
var tableau_Text = ' <?php echo $tableau_Text?>';
<script src = 'any_js.js'></script>
以及在.js 中
$('#content').replaceWith("<div>" + tableau_Text + "</div>");