如何使用一个选择器选择 jQuery 元素的子元素?
我有一个带有 id
article_50
的 div
。 如果我要选择 article_50
中的 .title
元素,我可以执行以下操作: $("#article_50 .title")
。
现在假设我想选择相同的标题,但在单击事件中:
$("#article_50").click(function(){
$(this).children(".title").hide();
});
现在我必须调用 children
方法来选择该 .title
元素。 我可以在同一个选择器中选择它而不需要调用 children
吗?
像这样的东西:
$("this .title").hide();
谢谢!
I have an div
with the id
article_50
.
If I were to select the .title
element inside article_50
, I could do the following:$("#article_50 .title")
.
Now say I want to select that same title, but within a click event:
$("#article_50").click(function(){
$(this).children(".title").hide();
});
Now I had to call the children
method to select that .title
element.
Could I select it within the same selector without the need to call children
?
Something like this:
$("this .title").hide();
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
快到了:
Almost there:
如果
.title
元素实际上是this
的子元素,请使用.children()
。当您这样做时:
...jQuery 必须运行 7 或 8 个测试才能确定您正在
this
中查找.title
。然后 jQuery 将其翻转为:
...然后重新开始。所以在所有测试之后它无论如何都会调用一个方法。正如你所看到的,它的效率不是很高。
此外,由于
.children()
看起来只深一层,因此使用.children()
比.find()
更快,如果您元素实际上是一个子元素。编辑:
更快的方法是将
#article_50
元素缓存在变量中,因此您不需要为$(this )
每次点击时。Use
.children()
if the.title
element is actually a child ofthis
.When you do:
...jQuery has to run 7 or 8 tests before it figures out that you're looking for
.title
inside ofthis
.Then jQuery just flips it around into this:
...and starts over. So it is calling a method anyway after all that testing. As you can see it is not very efficient.
Also, because
.children()
only looks one level deep, it is faster to use.children()
than.find()
if your element is actually a child.EDIT:
An even faster way would be to cache the
#article_50
element in a variable, so you don't need to create a jQuery object for$(this)
every time you click.难道你不应该说:
差不多一样了,你不需要叫孩子了。
Shouldn't you just be able to say:
That's nearly the same and you don't need to call children.