我正在尝试创建一个 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(); 返回结果字符串; }