我正在尝试通过 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() 之后保留 <script> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791420/