$('#<%=lblName.ClientID%>')
和$("[id$=lblName]")
有什麼區別?服務器端控件的jQuery選擇器
回答
$('#<%=lblName.ClientID%>')
將在ASP.Net中的ClientID
屬性中找到具有id
屬性的元素。
$("[id$=lblName]")
將找到具有以lblName
結尾的id
屬性的元素,例如foo-lblName
。
對於任何想要選擇其中一個的人,如果你有一個使用控制頁面(ascx)多於一次的頁面 - $(「[id $ = lblName]」)將包含多於1個元素id以該名稱結束。所以在這種情況下'$('#<%= lblName.ClientID%>')'將成爲控件的唯一選擇器 –
$('#<%=lblName.ClientID%>')
- #是ID使用的ID selector識別帶有ID的元素。
$("[id$=lblName]")
- Will select all the elements with id attribute which ends與lblName
第一個($('#<%=lblName.ClientID%>')
),id選擇,就會發現通過其ID的元件。這是非常快的,因爲它會使用原生的document.getElementById
第二個,Attribute Ends With selector,以不同的方式工作。例如,在IE中,如果以提供的值(或類似的東西)結尾,它將獲得每個元素的所有元素和測試ID。這太慢了。在較新的瀏覽器中有querySelectorAll這可能會被用來找到該選擇器的元素,但我不確定它是否被該功能支持(好吧,here它被定義爲vailid css3,所以假設現代瀏覽器將支持以選擇器在querySelectorAll)。
因此,總而言之,id選擇器在任何情況下都應該更快,而在舊的瀏覽器中應該快得多。同時,選擇符的結尾允許您在不將其客戶端ID傳遞給瀏覽器的情況下查找元素。
剛剛加入我今天才知道的,$('#<%=lblName.ClientID%>')
只會選擇一個元素,但是$("[id$=lblName]")
會選擇多個元素,所以如果你有相同的id分配給多個元素,並且你想遍歷所有的他們然後第一個案件將無法正常工作。
- 1. 在服務器端訪問jQuery控件?
- 2. 服務器端css選擇器
- 3. MVC服務器端控件
- 4. 將jQuery選擇器傳遞給函數服務器端
- 5. 服務器端jquery
- 6. 如何爲服務器控件中的HtmlInputHidden字段設置JQuery選擇器
- 7. 禁用jquery選項卡服務器端
- 8. ASP.NET服務器控件發射服務器端標籤
- 9. jQuery選擇負載從服務器
- 10. 與ASP.NET控件的jQuery選擇器
- 11. jQuery自動完成選擇調用服務器端腳本
- 12. Razor:服務器端控件在哪裏
- 13. jquery datatables服務器端不調用控制器內的動作
- 14. jQuery服務器端推ajax
- 15. jQuery服務器端按鈕
- 16. asp.net gridview jquery服務器端
- 17. jquery datatables服務器端列
- 18. 單擊服務器端按鈕和使用JQuery選擇/取消選擇Chechboxes
- 19. 服務器控件中的服務器控件ASP.NET
- 20. 服務器控件
- 21. jquery選擇器和Asp.net動態控件
- 22. 如何爲HTML選擇服務器控件的擴展屬性?
- 23. Jquery崩潰並擴展服務器端控件
- 24. 如何在JQuery ASP.NET中引用服務器端控件?
- 25. 選擇生成服務器
- 26. SQL服務器:選擇
- 27. SQL服務器選擇
- 28. 動態選擇服務器
- 29. SQL服務器選擇列
- 30. 你可以選擇瀏覽器目標服務器端嗎?
is lblName a typo? – dove