下面,我应该如何选择包含在元素中的类my_class
的元素id = "my_id"
?
请注意,该元素也可能有另一个类,我没有选择它。
<div id = "my_id">
<span class = "my_class hidden">hi</span>
<span class = "my_class">hello</span>
</div>
尝试着
$("#my_id [class*=my_class ]")
下面,我应该如何选择包含在元素中的类my_class
的元素id = "my_id"
?
请注意,该元素也可能有另一个类,我没有选择它。
<div id = "my_id">
<span class = "my_class hidden">hi</span>
<span class = "my_class">hello</span>
</div>
尝试着
$("#my_id [class*=my_class ]")
只需使用普通的 ol' 类选择器。
$('#my_id .my_class')
元素是否还有其他类并不重要。它有.my_class类,它位于#my_id内部的某个地方,因此它将匹配该选择器。
根据jQuery 选择器性能文档,分别使用两个选择器会更快,如下所示:
$('#my_id').find('.my_class')
这是文档的相关部分:
基于 ID 的选择器
// Fast: $( "#container div.robotarm" ); // Super-fast: $( "#container" ).find( "div.robotarm" );
该
.find()
方法更快,因为第一个选择是在不通过 Sizzle 选择器引擎的情况下处理的——只有 ID 的选择是使用 处理的document.getElementById()
,这非常快,因为它是浏览器的本机。
单独按 ID或按类选择(除其他外)会调用浏览器提供的函数document.getElementById()
,这些函数非常快,而使用后代选择器会调用 Sizzle 引擎,尽管速度很快,但比建议的替代方法慢。
始终使用
//Super Fast
$('#my_id').find('.my_class');
代替
// Fast:
$('#my_id .my_class');
看看JQuery 性能规则。
同样在Jquery Doc
也$( "#container" ).find( "div.robotarm" );
等于:$( "div.robotarm", "#container" )
我认为您要求仅选择<span class = "my_class">hello</span>
此元素,您已经这样做了,如果我正确理解您的问题,这就是答案,
$("#my_id [class='my_class']").addClass('test');
您可以使用 find() :
$('#my_id').find('my_class');
或者可能:
$('#my_id').find('span');
两种方法都会表达你想要的