0

我正在尝试在 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

4 回答 4

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>")​

呈现为_

hello world ""
于 2012-07-23T12:31:28.230 回答
3

不要将 php 代码视为变量

尝试这个

$('#content').replaceWith("<div><?php echo $tableau_Text?></div>");
于 2012-07-23T12:32:01.923 回答
2

除非您<?php echo $tableau_Text?>输出用引号括起来的相关文本,否则您最终会得到无效的字符串连接,因此会出现 JavaScript 语法错误。但是,由于 PHP 是在 JavaScript 到达浏览器之前执行的,因此您根本不需要使用字符串连接。

于 2012-07-23T12:32:59.597 回答
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>");
于 2012-07-23T13:01:25.627 回答