让我们说我有一个类似这样的标记:jQuery的 - 从元素中选择元素
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
,我想选择#moo。
为什么$('#foo').find('span')
有效,但$('span', $('#foo'));
没有?
让我们说我有一个类似这样的标记:jQuery的 - 从元素中选择元素
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
,我想选择#moo。
为什么$('#foo').find('span')
有效,但$('span', $('#foo'));
没有?
您可以使用任何一个这些
$("#moo") > $("#foo #moo") > $("div#foo span#moo") > $("#foo span") > $("#foo > #moo")
我认为第三个应该是跨度#moo不是跨度#foo? – xr280xr 2013-07-25 21:51:35
是的。我已经把c orrection – 2013-07-26 04:14:01
都似乎工作。
其实,$( '#身份证',这一点);会在任何后代级别选择#id,而不仅仅是直接子级。试试这个:
$(this).children('#id');
或
$("#foo > #moo")
或
$("#foo > span")
不会选择任何东西,因为元素具有** ID **'moo',而不是类。 – 2011-04-27 18:16:34
值得注意的是'.children()'和'。 find()'是相似的,除了前者只在DOM子树中向下移动一个层次。 – Kevin 2016-05-26 03:13:50
为什么不直接使用:
$("#foo span")
或
$("#foo > span")
$('span', $('#foo'));
作品在我的机器上的罚款;)
'$($(elementA),'tr#'+ key +'span')'不适用于我(jQuery 1.10 .2) – Cody 2014-07-07 16:34:58
看看这里[从最快的开始] - 查询元素的子元素:
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
您可以使用find
选项来选择另一个元素。例如,要找到ID txtName的在一个特定的div元素,你可以像使用
var name = $('#div1').find('#txtName').val();
为什么不'$( '#哞')'? ;)Btw。它确实工作:http://jsfiddle.net/fkling/k5X2r/ – 2011-04-27 18:15:11
或'$('#foo span')';-) – Capsule 2011-04-27 18:18:41
我不知道为什么,但钩到选定范围的函数会应用到所有跨越页面,而不仅仅是一个里面的#foo :( – Alex 2011-04-27 18:31:01