Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JQuery删除所有;脚本“;HTML字符串中的标记?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用JQuery删除所有;脚本“;HTML字符串中的标记?

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

假设我有一个HTML代码字符串。我想使用JQuery从字符串中删除所有
标记

我该怎么做

注意:我想使用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");