コードスニペット :
<div id="some_text">
<p>some text</p>
<div id="child">
<p>some other text</p>
</div>
</div
どうすれば" <p>some text</p>
"だけを取得できますか?
$('#some_text:first-child').html(); //contains your text
$('#some_text:first-child').remove(); //to remove
$("#some_text > p").replaceWith("some other html");
または、より具体的にする必要がある場合:
$("#some_text > p:first-child").replaceWith("some other html");
または使用するnot()
:
$("#some_text").children().not("#child").replaceWith("some other html");
replaceWith()
一致した各要素を特定のHTMLに置き換えるため、複数の要素に一致すると重複するコンテンツが取得されます。別の方法は、それを削除してから、必要なHTMLを追加することです。
基本的に、子要素を維持しながらdiv内のHTMLを置き換えるのは難しいです。これは、新しいHTMLをどこに配置するのでしょうか。その前に?後?その周り?あなたはおそらくそれについてもっと具体的にする必要があります。
$('#sometext > p')
トリックを行う必要があります。
IE 7 では認識されないため、子:first-child
:parent
のような疑似セレクターは避けようとしています。:nth