我正在尝试创建一个 javascript 函数,该函数接收假定为 HTML 的字符串并删除所有不可见的元素。我这里不是在页面上操作,只是来自任何地方的一串HTML。
起初,使用 :hidden 选择器似乎是理想的,但我无法让它工作。所以我开始玩filter(),但没有成功。
函数 StripInvisibleNodes(html) {
var 容器 = "" + html+ "";
//var $onlyvisiblehtml = $(container).find(":hidden").remove(); //没有工作
var $onlyvisiblehtml = $(container).find('*').filter(function() { return this.style.display == "none"; }).remove();
var 已移除 = $onlyvisiblehtml.html();
退货已移除;
}
更新:以下是工作解决方案
函数 StripInvisibleNodes(html) {
$('body').append("<div id='tempspace' style='visibility:hidden'>" + content + "</div>");
var $toremove = $('#tempspace').find("*").filter(':hidden');
$toremove.remove();
var resultstring = $('#tempspace').html();
$('#tempspace').remove();
返回结果字符串;
}