1

たとえば、オリジナルpは次のようになります。

<p>
    <h1>I'm title</h1>
    This is some descriptions.
    <a class="classToExclude">The Link #1</a>
    <a>The Link #2</a>
</p>

$('p').html() を除外してh1a.classToExclude欲しいだけです。
次のようになります:

<p>
    This is some descriptions.
    <a>The Link #2</a>
</p>

参考までに、selectorメソッドを使用すると、内部テキストではなく$('p').children().each()、以下が返されます。含まれていません。したがって、セレクターを使用してループアウトすることはできません。nodesThis is some descriptions.children()

4

3 に答える 3

2
var val = $('div').clone();
$('h1, .classToExclude', val).remove();
var html = val.html();
alert(html);

http://jsfiddle.net/7SYFV/63/

.html()は<p>要素では機能しないようです。

于 2012-07-15T08:50:57.830 に答える
2

あなたの HTML は無効です:

<p>
    <h1>I'm title</h1>
    This is some descriptions.
    <a class="classToExclude">The Link #1</a>
    <a>The Link #2</a>
</p>

次のように解釈されます。

<p></p>
<h1>I'm title</h1>
This is some descriptions.
<a class="classToExclude">The Link #1</a>
<a>The Link #2</a>
<p></p>

グーグルクローム、ファイアフォックス、インターネットエクスプローラーで。

次のような有効なhtmlを使用:

<div>
    <h1>I'm title</h1>
    This is some descriptions.
    <a class="classToExclude">The Link #1</a>
    <a>The Link #2</a>
</div>​

使用時に問題なく動作します

console.log( $('div').clone().find("h1,a.classToExclude").remove().end().html()) ​

http://jsfiddle.net/wVzVB/

于 2012-07-15T09:34:35.523 に答える
1

.remove()元のコンテンツを変更せずに関数を使用できるように、要素を追加のjQueryオブジェクトに複製する必要があります。

要素を複製または複製するには、clone()関数を使用できます。要素を複製したら、不要な要素をすべて削除し始めることができます-

var elementCopy = $("p").clone();
elementCopy.remove("h1, a.classToExclude");

elementCopy.html()これで、必要な要素が含まれます。


ページ内のすべての$("p")要素が選択されることに注意してください。処理したい要素を正確に特定しやすくするために、マークアップにいくつかのクラスを追加することを検討することをお勧めします。 <p>

于 2012-07-15T08:55:58.197 に答える