HTMLであると想定される文字列を受け取り、表示されないすべての要素を削除するjavascript関数を作成しようとしています。私はここのページを操作しているのではなく、どこからでも 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');
$tomove.remove();
var resultstring = $('#tempspace').html();
$('#tempspace').remove();
結果文字列を返します。
}