有人可以告訴我使用#[objectId]
或[id=objectId]
引用元素之間有什麼不同?JQuery:使用#[objectId]或[id = objectId]引用元素的差異
回答
第一個非常快,因爲jQuery在識別模式(使用正則表達式)時內部使用getElementById
。
第二個要求jQuery迭代所有具有ID的對象。這很慢。當jQuery在這種情況下找到一個匹配時,甚至不會停止迭代。
的唯一合法理由使用[id...
選擇是當你不只是一個確切的ID進行搜索,比如你可能要搜索的ID使用$('[id^=something]')
"something"
開始的所有元素。
假設你有一個有效的HTML(no reused id)和一個有效的id,你仍然可以在$('#'+someId)
上遇到問題(例如,當你的id包含一個引號或任何會破壞Sizzle模式識別系統的東西)。在這種情況下,請使用$(document.getElementById(someId))
。
按照您的評論:是的,在一個ID的"@"
使得它不可能灒(jQuery的選擇器引擎)瞭解您的選擇。嘶嘶聲使用以下正則表達式:
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
和/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/.test('#[email protected]')
回報false
。
這裏是一個性能測試。 http://jsperf.com/id-vs-class-vs-tag-selectors/2 –
破壞:你最後一段釘住它!我在我的ID中有@這可能是問題嗎? – pestacio
@pestacio是的。請參閱編輯。 –
- 1. Mongoose填充ObjectId引用或字符串
- 2. 使用Mongodb ObjectID作爲文檔ID?
- 3. PHP ObjectId組的ID數
- 4. MongoDB中的ObjectId使用
- 5. 搜索使用的ObjectId
- 6. 如何使用mongoimport的ObjectID?
- 7. mongoosejs或objectid語句
- 8. Unix中的Mongo ObjectID Time in PHP?使用蒙戈的ObjectID
- 9. 通過ObjectID附加swf元素
- 10. 爲什麼mongoDB使用objectID?
- 11. 使用'ObjectId'查詢MongoDB
- 12. 通過ObjectId查找Mongodb我是否在查詢中使用字符串或ObjectId?
- 13. 的ObjectId沒有找到的ObjectId
- 14. 貓鼬與自己的ObjectId自我引用投擲:投到ObjectId失敗
- 15. 從OBJECTID
- 16. 將Parse objectId轉換爲Mongo ObjectId?
- 17. 上的objectID
- 18. 貓鼬 - 的ObjectId
- 19. 播放2.3 Jongo的ObjectId定製ID
- 20. 使用pymongo返回ObjectID的.str
- 21. 使用mongoose的ObjectId進行授權
- 22. Mongoose.js:使用空的ObjectId保存
- 23. yii2:使用yii2獲取mongoDB的ObjectID
- 24. 問題mongoengine:ReferenceFields將默認使用的ObjectId
- 25. 貓鼬用objectId保存
- 26. 在URL中傳遞Mongo ObjectId並使用Node/Express查詢該ID
- 27. MongoDB $ push ObjectId
- 28. Autoconvert`_id`到`ObjectID`
- 29. Symfony2 MongoDB Doctrine ObjectID
- 30. parse.push.subscribe獲取objectId
沒有區別(速度除外)。他們返回相同的東西。 – BenM
1.性能,2.可讀性。 – moonwave99
我在某些情況下使用#objectID時遇到了一些問題... – pestacio