jquery,select器内的类的ID
下面,我应该如何selectid = "my_id"
元素中包含类my_class
的元素?
请注意,该元素也可能有另一个类,我不select。
<div id = "my_id"> <span class = "my_class hidden">hi</span> <span class = "my_class">hello</span> </div>
尝试着
$("#my_id [class*=my_class ]")
您可以使用类select器和后代select器
$("#my_id .my_class")
只需使用普通的ol类select器。
$('#my_id .my_class')
元素是否也有其他类也没关系。 它有.my_class类,它在#my_id里面,所以它会匹配那个select器。
关于performance
根据jQueryselect器性能文档 ,分别使用两个select器会更快,如下所示:
$('#my_id').find('.my_class')
这里是文档的相关部分:
基于ID的select器
// Fast: $( "#container div.robotarm" ); // Super-fast: $( "#container" ).find( "div.robotarm" );
.find()
方法更快,因为第一个select是通过Sizzleselect器引擎处理的 – 仅使用document.getElementById()
来处理IDselect,这是非常快的,因为它是浏览器原生的。
通过ID或单独select(除其他外)调用浏览器提供的函数,如document.getElementById()
,这些函数非常快速,而使用派生select器调用所提到的Sizzle引擎,尽pipe速度较快,但比build议的替代方法。
总是使用
//Super Fast $('#my_id').find('.my_class');
代替
// Fast: $('#my_id .my_class');
看看JQuery性能规则 。
也在Jquery文档
我想你的要求只select<span class = "my_class">hello</span>
这个元素,你这样做,如果我正确理解你的问题,这是答案,
$("#my_id [class='my_class']").addClass('test');
DEMO