javascript - 给定一串 html 代码,我如何遍历每个标记并删除不在我的白名单中的标记(在 JQuery 中)?

标签 javascript jquery

var whitelist = ['a','div','img', 'span'];

给定一段 HTML 代码,我想使用 JQuery 遍历每个标签

然后,如果该标签不在我的白名单中,删除它及其所有子标签。

现在应该清理最终字符串。

我该怎么做?

顺便说一下,这是我当前删除特定标签的代码(但我决定改用白名单)

        var canvas = '<div>'+canvas_html+'</div>';
        var blacklist = ['script','object','param','embed','applet','app','iframe',
        'form','input', 'link','meta','title','input','button','textarea'
        'head','body','kbd'];
        blacklist.forEach(function(r){
            $(canvas).find(r).remove();
        });
        canvas_html = $(canvas).get('div').html();

最佳答案

试试这个:

var whitelist = ['a','div','img', 'span'];
var output = $('<div>'+canvas_html+'</div>').find('*').each(function() {
  if($.inArray(this.nodeName.toLowerCase(), whitelist)==-1) {
    $(this).remove();
  }
}).html();
// output contains the HTML with everything except those in the whitelist stripped off

关于javascript - 给定一串 html 代码,我如何遍历每个标记并删除不在我的白名单中的标记(在 JQuery 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800019/

相关文章:

javascript - 文件内容的 ES6 字符串插值

Javascript:奇怪的类型转换

javascript - 简单的 jQuery 链接洞察

javascript - Jquery 在变量中切换元素

javascript - 无法清除下拉菜单的文本

javascript - jQuery:如何查找具有相同 src 的元素

javascript - 添加延迟到这个时事通讯弹出代码 - jQuery Modal Window Popup Code

javascript - 如何在 IntelliJ 的事件日志窗口中显示完整的 WebStorm 信息?

javascript - 为自动创建的变量创建名称

javascript - 显示提交的值