0

假设我们有这个 html 代码

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

而这个 jQuery

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

<p>现在,在不上一级的情况下,继续向下并更改其文本的正确方法是什么。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 回答