jquery是如何解决在dom对象中没有getElementsByClassName接口这个问题的
发布网友
发布时间:2023-06-23 12:41
我来回答
共2个回答
热心网友
时间:2023-10-12 21:36
你好!!
jquery通过$(".ClassName")来引用符合ClassName的元素~~
举例:
<div class="test"><span class="hello">Hello,Friend</span></div>
通过$(".test")可以返回一个jQuery对象,其本质为div元素的封装······
同理,$(".hello")返回的是一个封装后的span对象。
可能我之前没有理解你问题的重点,你是想问关于源码层面的实现方式么?
记得以前看过源码,这个地方最后会调用jquery的find()方法。
应该是没有原生js方法来的快,仁者见仁吧··追问我的重点就是,有些浏览器没有getElementsByClassName这个接口,但是jquery也没有重写这个方法,却可以通过$(".classname")选择器获得元素
追答// Speed-up: Sizzle(".CLASS")
}else if ( (m=match[3]) && support.getByClassName && context.getElementsByClassName ) {
push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
return results;
}
其实是有调用到的··
热心网友
时间:2023-10-12 21:36
如果不支持这个方法的话,会查询所有标签吧。
所以提供标签名会更快。因为可以先用getElementsByTagName获取所有标签。
然后循环这个标签。