从速度测试$(this)vs .get()vs .eq()引导
我决定进行快速测试以比较$(this).attr(“ id”)的速度; vs this.ID可以在本机属性(例如ID,SRC,HREF,样式等)上使用……但不在诸如BGCOLOR,DATA等属性上...
>背景
在上下文中,这种情况会发生变化,但通常:
$(这)是一个可以访问所有jQuery API的jQuery对象
这是对DOM元素的引用
对于尚未创建的DOM元素,请使用$(this)。
速度
没有jQuery包装器的整体速度略高。
$(this).attr(“ id”):42ms
this.id:1ms
查看结果:https://jsfiddle.net/jquery4u/f9rp7/
进一步阅读:
经常询问有关jQuery速度测试的问题(常见问题解答)
>为什么jQuery的$(this).attr('id')执行比this.id.id.id?
jquery的$(this).attr('id')的执行速度较慢。涉及更多处理。 $(this).attr('id')方法首先从dom元素创建jQuery对象,然后使用attr()方法检索ID属性。另一方面,此.ID直接访问DOM元素的ID属性,该元素的速度更快,因为它涉及较少的处理。
> yid二$(this).attr('id')和this.id用于在jQuery中获取元素的ID。但是,$(this).attr('id')是一种jQuery方法,它仅获取匹配集中的第一个元素的属性值。它返回未定义的未定义属性值。另一方面,此.ID是纯JavaScript属性,可直接获得元素的ID。如果未定义ID,它将返回一个空字符串。>
为什么this.id在我的jQuery代码中返回undewine?>如果此.ID返回未定义,则可能是因为元素是因为元素没有ID属性。请记住,此ID直接访问DOM元素的ID属性。如果未定义ID,它将返回一个空字符串,而不是未定义。检查您的代码以确保元素具有ID属性。
>如何提高jQuery代码的性能?
>>提高jQuery代码性能的一种方法是通过最小化使用涉及更多处理的jQuery方法,例如$(this).attr('id')。相反,您可以使用直接访问DOM元素属性的纯JavaScript属性。ID。另外,尝试缓存您的jQuery对象,使用事件委托,并在可能的情况下链接您的方法。
>我可以将this.id与其他属性一起使用ID?
是的,您可以使用this.property与DOM元素的任何属性一起使用。例如,您可以使用this.classname获取元素的类,或者this.innerhtml以获取元素的内部HTML。请记住,此property直接访问dom元素的属性。
> $(this).attr('id')和this.ID与所有现代浏览器兼容。但是,这个ID是纯JavaScript属性,也与不完全支持jQuery的Internet Explorer的旧版本兼容。
>>为什么this.id返回一个空字符串而不是未定义?在JavaScript中,如果未在对象上定义属性,则访问其将返回未定义。但是,DOM元素具有预定义的属性集,包括ID。如果未为DOM元素设置ID属性,则访问this.id将返回一个空字符串,而不是未定义。是的,您可以在JavaScript中使用this.id设置DOM元素的ID。例如,this.id ='newid'将把元素的ID设置为“ newid”。但是,在动态更改ID时要小心,因为它会导致代码中的混乱和意外行为。
如何使用纯JavaScript?使用ID属性在纯JavaScript中的DOM元素的ID。例如,如果您在称为元素的变量中对DOM元素的引用,则可以使用element.ID.ID。
获得其ID 'id')?
使用this.id代替$(this).attr('id')可以改善代码的性能,因为它涉及较少的处理。它直接访问DOM元素的ID属性,而$(this).attr('id')涉及创建jQuery对象,然后使用attr()方法获取ID。
以上是jQuery速度测试:$(this).attr(' id”); vs this.id的详细内容。更多信息请关注PHP中文网其他相关文章!