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(); 結果文字列を返します。 }