我正在尝试在javascript中执行此代码:
$('#content').replaceWith("<div>" + <?php echo $tableau_Text?> + "</div>");
但是不适合我。它对我没有任何意义。当我更改静态的PHP code
时:
$('#content').replaceWith("<div>Hello World</div>");
它与之完美配合。
我的html #content定义是: -
<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的列表元素,在我将其粘贴到此处之后我没有意识到这会让我的代码变得疯狂......
答案 0 :(得分:7)
试试这个:
$('#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>")
哪个renders为
hello world ""
答案 1 :(得分:3)
不要将php代码视为变量
试试这个
$('#content').replaceWith("<div><?php echo $tableau_Text?></div>");
答案 2 :(得分:2)
除非您的<?php echo $tableau_Text?>
输出引号中包含的相关文本,否则最终会出现无效的字符串连接,从而导致JavaScript语法错误。但是,由于PHP是在JavaScript到达浏览器之前执行的,因此根本不需要使用字符串连接。
答案 3 :(得分:1)
一个反问题: 是你的代码
$('#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>");