2013-11-13 3 views
1

HTML-структурирована следующим образом:Как выбрать первый родной элемент определенного типа с помощью jQuery?

<div id="myDiv"></div> 
<img src="" /> 
<p></p> // I want to select this element 
<h1></h1> 
<p></p> 
<h2></h2> 

Основываясь на моем начальном элементе <div id="myDiv"> Есть еще несколько <p> братьев и сестер, но я только хочу, первый, как показано в коде.

Как я могу это достичь?

+1

тесно связана с [чистейших образом, чтобы получить родственный в JQuery] (HTTP : //stackoverflow.com/questions/6237673/cleanest-way-to-get-a-sibling-in-jquery) (с элементом '' вместо '
', но тот же принцип стоит). –

ответ

6
jQuery('#myDiv').siblings('p:first') 

или

jQuery('#myDiv').siblings('p').first() 

будет делать трюк

0

подобное (исправлено):

$('p').first(); 
+0

Не будет работать, p не является дочерним элементом div здесь. – OlivierH

3

Попробуйте это:

jQuery('#myDiv ~ p').first() 

или чистый селектор CSS (не проверена производительность, но это может быть самым быстрым решением, так как он использует .querySelectorAll):

jQuery('#myDiv ~ p:first-of-type') 
-1

Как Оливье предлагает .Первый() или р: первая будет отвечать вашим потребностям, хотя более общее решение будет нам .eq (п) - где п число вы хотите, начиная с 0.

например, чтобы выбрать первый родственный пункт #myDiv вы будете использовать:

jQuery('#myDiv').siblings('p').eq(0); 

Чтобы указать на третий абзац, все, что вы сделали бы s меняет число. Помните, что, как она начинается от 0 Вы фактически должны принять одну сторону от цели:

jQuery('#myDiv').siblings('p').eq(2); 
+1

В вопросе 'p' не является дочерним элементом' # myDiv'. Этот CSS-селектор '#myDiv p' выберет только' p' внутри '# myDiv' –

0

Попробуйте этот ответ

$('#myDiv').siblings('p:first'); 
Смежные вопросы