Как с помощью JQuery выбрать все элементы с классом x внутри элемента с идентификатором y?
Справка по селектору JQuery
Ответы (5)
Выбор всех потомков с классом x элемента с идентификатором «y».
$("#y .x").each(function () {
$(this) <- your element
});
Выбор всех дочерних элементов с классом x элемента с идентификатором «y».
$("#y > .x").each(function () {
$(this) <- your element
});
$("#y").find(".x")
, а второй такой же, как $("#y").find("> .x")
- person BrunoLM; 26.08.2010
.click
, тогда .each
все равно удаляется.
- person Lasse Espeholt; 26.08.2010
$('#y .x')
должен сделать это за вас.
обратите внимание, что это выберет всех потомков с классом x, а не только детей.
$("#x .y").doSomething();
$(".y", "#x").doSomething();
$("#x").find(".y").doSomething();
А для ближайших детей:
$("#x > .y").doSomething();
$("#x").children(".y").doSomething();
Взгляните на мой вопрос здесь, он говорит вам немного больше и касается производительности. Каков самый быстрый метод выбора дочерних элементов в jQuery?
"#x"
. jQuery незаметно превращает его в вашу третью версию. : o)
- person user113716; 26.08.2010
Используйте 1_
Если у вас есть элемент 1 с id = 'y' и вы хотите, чтобы все его [непосредственные] дочерние элементы имели class = 'x'
$("#y > .x").each(function(){stuff]);
Если вы хотите, чтобы все потомки id = 'y' (а не только сразу), вы бы сделали:
$("#y").find(".x").each(function(){stuff});
Очевидно, вы могли бы сделать его умнее (и лучше), добавив типы элементов, если вы знаете, что они из себя представляют. Например, если вам нужны только дочерние элементы типа, тогда:
$("#y > a.x").each(function(){stuff]);
Надеюсь, ты это имел в виду.
.children()
не дает вам всех потомков. Просто немедленно. Вы думаете о .find()
, который вернет всех подходящих потомков.
- person user113716; 26.08.2010