jQuery - 从元素内部选择元素
假设我有一个这样的标记:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
并且我想选择#moo。
为什么 $('#foo').find('span')
有效,但 $('span', $('#foo'));
无效?
let's say I have a markup like this:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
and I want to select #moo.
why $('#foo').find('span')
works, but $('span', $('#foo'));
doesn't ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
您可以使用其中任何一个[从最快的开始]
看看
You can use any one these [starting from the fastest]
Take a look
实际上,$('#id', this);会在任何后代级别选择#id,而不仅仅是直接子级。试试这个:
或
或
Actually, $('#id', this); would select #id at any descendant level, not just the immediate child. Try this instead:
or
or
您可以使用
find
选项来选择另一个元素中的一个元素。例如,要在特定 div 中查找 id txtName 的元素,您可以使用 likeYou can use
find
option to select an element inside another. For example, to find an element with id txtName in a particular div, you can use like为什么不直接使用:
或
$('span', $('#foo'));
在我的机器上工作正常;)Why not just use:
or
$('span', $('#foo'));
works fine on my machine ;)看一下这里 - 查询元素的子元素:
$(document.getElementById('parentid')).find('div#' + divID + ' span.孩子');
Have a look here -- to query a sub-element of an element:
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
此方法称为提供选择器上下文。
在此,您向 jQuery 选择器提供第二个参数。它可以是任何 css 对象字符串,就像您传递直接选择或 jQuery 元素一样。
例如。
上面的行将选择容器内具有名为
cont1
的类的所有范围。演示
This method is called as providing selector context.
In this you provide a second argument to the jQuery selector. It can be any css object string just like you would pass for direct selecting or a jQuery element.
eg.
The above line will select all spans within the container having the class named
cont1
.DEMO
两者似乎都在工作。
参见小提琴: http://jsfiddle.net/maniator/PSxkS/
both seem to be working.
see fiddle: http://jsfiddle.net/maniator/PSxkS/