用PHP替换HTML替换函数

时间:2012-07-23 12:28:47

标签: php javascript html jquery-mobile

我正在尝试在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的列表元素,在我将其粘贴到此处之后我没有意识到这会让我的代码变得疯狂......

4 个答案:

答案 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>");