скажем, у меня есть такая разметка:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
и я хочу выбрать #moo.
почему $('#foo').find('span')
работает, а $('span', $('#foo'));
нет?
скажем, у меня есть такая разметка:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
и я хочу выбрать #moo.
почему $('#foo').find('span')
работает, а $('span', $('#foo'));
нет?
$('#moo')
? ;) Кстати. это действительно работает: jsfiddle.net/fkling/k5X2rvar ele = $("div #foo")
того, как вы можете получить отсюдаОтветы:
Вы можете использовать любой из этих [начиная с самого быстрого]
$("#moo") > $("#foo #moo") > $("div#foo span#moo") > $("#foo span") > $("#foo > #moo")
Взглянем
источник
Фактически, $ ('# id', this); выбрал бы #id на любом уровне потомка, а не только на непосредственном потомке. Попробуйте вместо этого:
$(this).children('#id');
или
$("#foo > #moo")
или
$("#foo > span")
источник
moo
, а не класс..children()
и.find()
они похожи, за исключением того, что первые перемещаются только на один уровень вниз по поддереву DOM.Почему бы просто не использовать:
$("#foo span")
или
$("#foo > span")
$('span', $('#foo'));
отлично работает на моей машине;)источник
$($(elementA), 'tr#' + key + ' span')
у меня не работает (jQuery 1.10.2)Вы можете использовать
find
опцию, чтобы выбрать элемент внутри другого. Например, чтобы найти элемент с идентификатором txtName в конкретном div, вы можете использовать какvar name = $('#div1').find('#txtName').val();
источник
Посмотрите здесь - чтобы запросить подэлемент элемента :
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
источник
Этот метод вызывается как обеспечивающий контекст селектора .
Здесь вы предоставляете второй аргумент селектору jQuery . Это может быть любая строка объекта css, как при прямом выборе, или элемент jQuery.
например.
$("span",".cont1").css("background", '#F00');
Вышеупомянутая строка выберет все промежутки в контейнере с именем класса
cont1
.ДЕМО
источник
оба вроде работают.
см. скрипку: http://jsfiddle.net/maniator/PSxkS/
источник