anm*_*rti 1 jquery jquery-selectors
我有一个带有几个链接按钮 的菜单<a class="selected">.当我点击一个我应用一个类时selected,当我点击另一个时,我必须删除它的类并将此类分配给新单击的链接按钮.
因此,只有一个元素同时具有某个类名,我想选择它以删除此类.
我知道:
$('.myclass').removeClass('myclass');
我认为效率不高,因为它必须检查DOM的所有元素
获取此元素的更有效方法是什么:<a class="selected">并删除它的类selected?
不,它不会检查所有元素:它使用优化的getElementsByClassName函数.
所以通过他们的类来寻找元素,即使没有比通过id查找快,也足够快,使用jQuery或Vanilla JS.
这就是说,因为只有一个元素(假设你的元素没有其他类),你可以避免jQuery进行的解析,如果它对你来说真的那么重要:
document.getElementsByClassName('myclass')[0].className = '';
Run Code Online (Sandbox Code Playgroud)
对于想要查看代码的人来说,这是jQuery搜索元素中可能的"加速"之一:
// Speed-up: Sizzle(".CLASS")
} else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {
push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
return results;
}
Run Code Online (Sandbox Code Playgroud)