2013-07-31 2 views
-5

HTMLКак выбрать элементы для детей?

<div class="one"> 
    <div class="two"> 
     <div class="three">text</div> 
    </div> 
</div> 

Как выбрать детский элемент. Я попробовал это.

$('.one').children('.three').css('color','#f00'); 

Я знаю функцию .find(), но хочу знать другой метод.

+2

Существует множество методов для выбора дочерних элементов в jQuery. Я бы предложил, чтобы просмотр [API] (http://api.jquery.com/category/traversing/tree-traversal/) стал бы лучше использовать ваше и все время elses. –

+0

Что не так с 'find()'? Зачем вам нужен другой путь? – musefan

+0

Правильный способ сделать это с помощью 'find()'. Период. 'children()' пересекает 1 уровень в дереве, 'find()' пересекает ВСЕ уровни. IE. use 'find()' –

ответ

0

Попробуйте одна из этих линий:

$('.one').children().children('.three').css('color','#f00'); 
$('.one').children('.two').children('.three').css('color','#f00'); 
$('.one').children('.two').find('.three').css('color','#f00'); 

Надеюсь это поможет вам.

1

Вы также можете сделать это:

$('.one > .two').children('.three').css('color','#f00'); 

Или конечно:

$('.one > .two > .three').css('color','#f00'); 

Вот скрипка: http://jsfiddle.net/3nhrh/1/

+2

, пожалуйста, прочитайте вопрос перед отправкой – musefan

+0

@musefan достаточно справедливо :) Отредактировано :) –

5

Вы всегда можете изменить селектор классы цепи друг с другом:

$(".one .three").css("color", "#f00"); 

Это будет выбирать любые дочерние .one класса, которые имеют класс .three

0

Вы можете использовать селектор контекста:

$('.three', $('#one')).css(..... 
+0

Это неправильно ..... ',' не должно быть –

+0

@DKM Спасибо. Исправлена. – Abhitalks

1

Ниже метод может быть поможет вам:

var children=$('.one').children(); 

children.each(function(idx, val){ 
    $(this).css('color','#f00'); 
}); 

JSFiddle

0

Пробег:

$('.one > div.three').css('color','#f00'); 
0

Попробуйте это ... jsfiddle

$("div").children(".two").css("color", "blue"); 
0

Все зависит от того, что именно вы хотите достичь.

Если элемент с классом «три» существует только один раз в вашем документе (или хотите получить все), вы можете просто использовать $('.three').

, если вы ищете какую-либо «тройку», который является потомком или «два», который является потомком «один» использовать $('.one .two .three')

, если вы хотите, то же самое, только если они являются прямыми потомками вы можете использовать $('.one > .two > .three')

, если вам случится уже объект Jquery для «один» узел, вы можете ограничить ваши предыдущие поиски, как это: $('.three' , theOne), $(' .two .three' , theOne) или $(' > .two > .three', theOne)

Я надеюсь, что один из тех, кто отвечает вашим потребностям, если не t вы должны лучше уточнить, что именно происходит.

+1

Последнее, что я искал –

+0

Последнее слово '$ ('> .two> .three', theOne)'? – epeleg

+0

$ ('. Three', theOne) Не могли бы вы показать мне демо-версию моего html? –

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