HTML用PHP替换with函数


HTML replaceWith function with PHP

我正在尝试用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>");