2013-06-24 1 views
0

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

<div class="example"> 
<div> 
    <div> 
    <div> 
     <span></span> 
    </div> 
    </div> 
    </div> 
</div> 

Как можно настроить таргетинг, что конкретный диапазон внутри «строку .EXAMPLE»? без необходимости писать

$('.example div div div span') 

Спасибо, ребята.

+2

Если нет других пролетов в дереве, это всего лишь $ («Пример диапазон»), būti Я уверен, что есть еще вопрос к вашему вопросу. –

+0

добавить класс в элемент, который вы хотите настроить, будет самым простым – scrappedcola

+0

есть ли другие 'span' in '.example'? –

ответ

3

Вам не нужно указывать все гнездование. В css селекторном пространстве означает любой потомок, а не прямой ребенок. Так оно и должно быть просто

$('.example span') 

С другой стороны, вы можете ограничить результаты поиска по specifiying, которые span именно вы хотите. В этом случае, вы хотите установить класс или идентификатор атрибут на этом промежуток и искать его, используя

$('.example span#spanid') //for id = spanid 
$('.example span.spanclass') //for class = spanclass  

См W3C selectors документа для деталей

3

$('.example span') также должен найти его.

1

Хотя оба предыдущих ответы совершенно справедливы и ответить на вопрос, Я бы предположил, что, если возможно, вы добавите класс в вложенный элемент (ы), который вы хотите найти. Нет никаких прямых улучшений производительности, просто семантики и ясности. Например,

$('.example span') 

может работать пока, но если вы добавите другие промежутки позже, он сломается. Однако, если добавить .my_nested_span размаху вы хотите, и затем сделать

$('.my_nested_span') 

вместо этого, вы всегда должны быть хорошо идти в будущем.

1

Вы можете дать пролету идентификатор:

<span id="myspan"></span> 

А потом это просто:

$('#myspan')