Javascript 如何使用JQuery删除所有;脚本“;HTML字符串中的标记?
假设我有一个HTML代码字符串。我想使用JQuery从字符串中删除所有Javascript 如何使用JQuery删除所有;脚本“;HTML字符串中的标记?,javascript,jquery,html,Javascript,Jquery,Html,假设我有一个HTML代码字符串。我想使用JQuery从字符串中删除所有标记 我该怎么做 注意:我想使用JQuery而不是REGEX来完成这项工作 这行吗$(var).find('script').remove()这应该适用于您: var stringOfHtml = // your string here $(stringOfHtml).find('script').remove(); 要获取已删除脚本标记的新字符串,请执行以下操作: var stringOfHtml = "<div&g
标记
我该怎么做
注意:我想使用JQuery而不是REGEX来完成这项工作
这行吗<代码>$(var).find('script').remove()代码>这应该适用于您:
var stringOfHtml = // your string here
$(stringOfHtml).find('script').remove();
要获取已删除脚本标记的新字符串,请执行以下操作:
var stringOfHtml = "<div><script></script><span></span></div>";
var html = $(stringOfHtml);
html.find('script').remove();
var stringWithoutScripts = html.wrap("<div>").parent().html(); // have to wrap for html to get the outer element
var stringOfHtml=“”;
var html=$(stringOfHtml);
html.find('script').remove();
var stringWithoutScripts=html.wrap(“”.parent().html();//必须对html进行包装才能获取外部元素
-必须使用p而不是脚本,因为脚本破坏了小提琴,尽管原理相同
这里的实际工作答案(希望如此)
这里有一个解决脚本问题的方法,使用replace将脚本文本与其他文本交换(尝试使其唯一),然后删除这些新标记,并再次使用replace将脚本交换回文本中的任何其他位置。是的,它确实使用正则表达式,但不是删除脚本标记,所以我希望这没问题;):
var stringOfHtml=“警报('fail');”;
var wrappedString=''+stringOfHtml+'';
var noScript=wrappedString.replace(/script/g,“thisisnotscriptreally”);
var html=$(noScript);
find('THISISNOTASCRIPTREALLY').remove();
警报(html.html().replace(/THISISNOTASCRIPTREALLY/g,'script');
我想这应该行得通
$('script').each(function () {
$(this).remove();
});
老问题,但如果您仍在寻找从字符串中删除脚本的最简单方法,请尝试
$.parseHTML(string);
$.parseHTML()自动从字符串中删除脚本标记
编辑:
这是因为keepScripts
的默认值为false。(参考资料:)
如果要从任何字符串中删除脚本标记,以下是另一种解决方案:
var str = "<script>Content...</script>"
use var afterstring = str.replace("<script>","new");
and afterstring = str.replace("<\/script>","new");
var str=“内容…”
使用var-afterstring=str.replace(“,“new”);
和afterstring=str.replace(“,“new”);
希望它能为你工作 如何获得结果字符串?我想问题在于脚本是在解析它时执行的,而
.remove()
是无用的@DavidRodrigues看来你是对的。我猜这对脚本不起作用,但对任何其他标签都应该起作用。这个答案很糟糕。您的正则表达式将咀嚼任何包含单词“script”的字符串,无论它是否是标记-1@g33kz0r谢谢,不过我不太明白你的意思。我在span中添加了一个示例,该示例使用了word脚本,但它没有被删除。效果很好,但是如何将html重新连接到字符串中呢parseHTML()
返回一个不包含脚本标记的DOM元素数组,但我希望加入,而不必将它们插入到文档中。我试图避免使用类似$()的东西。add()或append()这相当于$('script')。remove()
$.parseHTML(data, context, keepScripts)
var str = "<script>Content...</script>"
use var afterstring = str.replace("<script>","new");
and afterstring = str.replace("<\/script>","new");