0

たくさんのhtmlコンテンツを含む入力があります。不要な要素(要素だけですが、コンテンツを保持する必要があります)を効率的に削除するjquery関数を探している場合、保持する要素は私が指定した要素になります。また、必要のない要素を追加または削除するように関数を簡単に構成できるようにしたいと思います。例:var tagsToRetain = "p、i、u、br";

私は以下を試しましたが、それは私が望まない要素を指定する必要があり、そうするのは面倒です。

$("span,h1,h2").each(function(){
$(this).replaceWith($(this).html());
});​
4

1 に答える 1

0

私があなたを正しく理解していれば、ループで処理すべきでない要素を指定する必要があります。.each()その場合は、:not()セレクターまたは.not()メソッドを使用します。

$("body *:not(p,i,u,br)").each(function(){
   $(this).replaceWith($(this).html());
});​

// OR:
$("body *").not("p,i,u,br").each(function(){
   $(this).replaceWith($(this).html());
});​

// OR, encapsulated in a function with a clunky name:

function stripElementsNotSpecified(tagsToRetain) {
   $("body *").not(tagsToRetain).each(function(){
      $(this).replaceWith($(this).html());
   });
}

stripElementsNotSpecified("p,i,u,br");​

"body *"セレクターの:not(p,i,u.br)一部がないと、ドキュメントの html、head、script などの要素が選択されることに注意してください。"body *"本体の子のみを選択します。

于 2012-05-31T06:52:24.237 に答える