javascript - jquery:在 .find() 之后保留 <script> 标签

标签 javascript jquery

我正在尝试通过 jquery-ajax 插件将 ajax 添加到 WordPress,但我遇到了一件事:

我的页面由 ajax 调用加载、过滤并附加到 dom。所以简而言之,它将是:

data = this.state.Response.data; //full html of page returned by ajax
$mainContent = $(data).find("#content"); //we filter out what we need 
$('#content_div').append($mainContent); //we display it

现在很简单,但是 $mainContent 中有内联 js 脚本,由 jquery strip 化。 不知何故,我需要它们。

一切正常,只要我这样做

.append(data);  

但是数据包含我无法附加的完整 html(doctype、head、meta)。 那么,有没有办法让这些标签在 .find() 之后起作用?

最佳答案

每当您从一个字符串创建一个 jQuery 对象时,脚本标签会被自动去除。您可以在此处查看讨论:JavaScript RegEx for div tags

我会做的,正如上面线程中的帖子所建议的那样,将内容包装在特殊的评论标签中,并使用 javascript match() 来提取它,附加整个字符串。

data = this.state.Response.data; //full html of page returned by ajax

//Assuming your data looks like: ...<!--Content Start-->CONTENT<!--Content End-->...
//we filter out what we need 
data = data.match(/<\!\-\-Content Start\-\->(.*?)<\!\-\-Content End\-\->/)[1];

$('#content_div').append(data); //we display it

关于javascript - jquery:在 .find() 之后保留 &lt;script&gt; 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791420/

相关文章:

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - dart 函数使用 MIME 类型将文本复制到剪贴板

javascript - 如何在脚本部分的 package.json 中使用 @ (at) 符号(我的案例 : run cucumber-js for tagged features)

javascript - HTML + Javascript 表单提交问题

javascript - 有没有办法在 AngularJS 之外重新定义绑定(bind)到 $ctrl 的函数?

jQuery - 使用每个点击函数内部移动 div

javascript - 在 onclick 事件上更改按钮的背景图像

Javascript 类似于 Python 的 string.encode ('UTF-8' )

jquery - 如何使用jquery重定向到按钮点击事件的其他页面

javascript - 在 jquery 中禁用选择元素中的选项