2010-06-14 112 views
16

我想按类名查找元素。我知道它会出现在特定的父div中,因此,而不是搜索整个dom,我只想搜索特定的div。我想这一点,但似乎并没有被正确的语法:从已知的父元素中按类名称查找元素

var element = $("#parentDiv").(".myClassNameOfInterest"); 

什么是这样做的正确方法?

感谢

回答

36

你接近。你可以这样做:

var element = $("#parentDiv").find(".myClassNameOfInterest"); 

或者,你可以这样做:

var element = $(".myClassNameOfInterest", "#parentDiv"); 

...这台jQuery对象到#parentDiv的情况下。

编辑:

此外,如果你做div.myClassNameOfInterest,而不是仅仅.myClassNameOfInterest它可能会在某些浏览器速度更快。

+0

第二种方法实际上被jQuery转换为第一种方法场面。第一种方法是批准的方式。您对div的正确性也是正确的,它会告诉jQuery只检查div的类名,而不是所有元素。 – 2010-06-14 02:49:19

+0

@Mike - 前几天我听说有关jQuery将第二个例子转换为第一个例子,所以我快速查看了源代码。当然似乎。感谢您的确认。 :o) – user113716 2010-06-14 03:00:36

+0

功能更快更慢的方面的好处。 – divinedragon 2016-03-17 05:11:46

2
var element = $("#parentDiv .myClassNameOfInterest") 
+2

我认为这实际上可能会变慢。我不认为这会将搜索的上下文减少到'#parentDiv'。我很确定它仍然在为类寻找DOM,然后当它找到它时,它会检查它是否是'#parentDiv'的后代。 – user113716 2010-06-14 02:28:54

+0

@patrick,你是对的。在你的例子中,使用id选择器指定可选的上下文参数提供了最好的性能......'$(“。myClassNameOfInterest”,“#parentDiv”);' – 2010-06-14 02:45:36