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