0

このhtmlコードがあるとしましょう

<div id="test">
     <h2>Title</h2>
     <p>lorem ipsum</p>
</div>

そしてこのjQuery

$("#test h2").text("Changed Title");

<p>では、1 レベル上がらずに に進み、そのテキストを変更する正しい方法は何ですか。Likenext()は次の h2 のみを検索しますが、要素の種類に関係なく兄弟を取得するものはありますか。next("p");もしかしてみたいな?

4

7 に答える 7

2

あなたが探しているコマンドはsiblings("p")

更新された例を次に示します。

$("#test h2").text("Changed Title").siblings('p').text('test');
于 2012-07-04T13:41:42.173 に答える
2

next次の要素を選択します。デフォルトでは、同じタイプの要素だけを選択するわけではありません。

$('#test h2').next();      // selects the p
$('#test h2').next('p');   // selects the p
$('#test h2').next('h2');  // does not select the p

セレクターを指定しない限り、次の兄弟要素next が選択されます。したがって、これを行うことができます:

$('#test h2').text('Changed title').next().text('Changed text');
于 2012-07-04T13:42:15.653 に答える
2

.next( 'p' )トリックを行います:

$("#test h2").text("Changed Title")
             .next( 'p' )
             .text( 'Another change' );

jQueryドキュメントから:

一致した要素のセット内の各要素の直後の兄弟を取得します。セレクターが指定されている場合、そのセレクターに一致する場合にのみ、次の兄弟を取得します。

ここでフィドルの例を参照してください。

于 2012-07-04T13:43:11.533 に答える
0

.next('p')正確には、次のメソッドを使用して実行できます。

$("#test h2").next('p').text("...");
于 2012-07-04T13:41:02.097 に答える
0

.next('p')実際に動作します。最後にチェーンするだけです。このような:

$('#test h2').text("Changed Title").next('p').text('I changed too');

于 2012-07-04T13:41:12.987 に答える
0
$("#test h2").text("Changed Title").siblings().text("");
于 2012-07-04T13:42:04.703 に答える
0

あなたが提案したように、

$("#test").next("p").text('yada');

またはさらに良い:

$("#test h2").text("Changed Title").next("p").text('yada');
于 2012-07-04T13:43:07.960 に答える