從速度測試$(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中文網其他相關文章!