2012-07-04 4 views
0

Сказать, что у нас есть этот HTML кодПолучение следующего элемента в DIV с JQuery

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

И это JQuery

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

Теперь то, что это правильный путь, чтобы продолжить вплоть до <p>, а также измените его текст, не поднимаясь на один уровень. Как next() будет искать только следующий h2, но есть ли что-то, что приобретает родственный брат независимо от типа элемента. Может быть, что-то вроде next("p");?

+0

http://api.jquery.com/ помогает ... – Christoph

ответ

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'); 
0

Точно, вы можете сделать это с помощью метода .next('p'):

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

воли .next('p') в самом деле работать. Просто соедините его в конце. как это:

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

2

Команда ваш ищет является siblings("p")

Вот ваш пример, обновление:

$("#test h2").text("Changed Title").siblings('p').text('test'); 
0
$("#test h2").text("Changed Title").siblings().text(""); 
0

Так же, как вы предложили,

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

или даже лучше:

$("#test h2").text("Changed Title").next("p").text('yada'); 
2

.next('p') будет делать трюк:

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

С jQuery docu:

Получить сразу же следующего родственника каждого элемента в наборе согласованных элементов. Если предусмотрен селектор, он получает следующий брат, только если он соответствует этому селектору.

См. example fiddle here.

Смежные вопросы