【发布时间】:2011-11-13 16:45:13
【问题描述】:
我有一个通用的 jQuery 选择器(一个字符串):
var selector = '#files li div';
以及类名:
var myClass = 'folder';
我想检查选择器是否匹配将类存储在 myClass 中的元素。 到目前为止,我使用选择器的一个实例来调用方法 hasClass():
var match = $(selector).hasClass(myClass);
它可以工作,但我认为它可能存在一些更有效的 jQuery 方法,它允许不创建 jQuery 实例来获取选择器匹配的所有元素。
我担心的是仅为此检查创建的实例使用的内存,仅此而已,尽管它位于伪类的方法中,不会返回/公开对此实例的任何引用。
你能提出更好的建议吗?
在显示的示例中,我将 myClass 的值设置为“文件夹”只是为了方便地表示问题,但在应用程序中我事先并不知道,因为它是由用户操作定义的。
【问题讨论】:
-
除非我误解了问题,否则您可以使用#files li div.folder
-
检查
$('#files li div .folder').length -
@m90:应该是
$('#files li div.folder').length -
很遗憾没有,变量 myClass 可以包含任何值,我事先并不知道,它是由用户通过 UI 进行的操作定义的。在示例中,我将其设置为“文件夹”只是为了更好地揭示问题。
-
您也可以在选择器中使用变量。只需根据需要连接字符串。
标签: jquery dom jquery-selectors traversal