簡體   English   中英

在ASP.NET和jQuery中定位服務器控件

[英]Targetting server control in ASP.NET and jQuery

我無法在已經創建的線程中找到答案。

$(<%=txtRating.ClientID%>).val("Set the value");

相當於

$("#<%=txtRating.ClientID%>").val("Set the value");

兩者都工作正常,有什么區別嗎? 謝謝。

兩者都起作用是因為瀏覽器會自動為每個標簽id創建一個變量,以便遵循HTML5標准。 看到http://2ality.com/2012/08/ids-are-global.html

您的代碼:

$(<%=txtRating.ClientID%>).val("Set the value");
$("#<%=txtRating.ClientID%>").val("Set the value2");

在產生的HTML頁面上呈現此Javascript:

$(txtRating).val("Set the value");
$("#txtRating").val("Set the value2");

第一個有效的原因是:

HTML5標准規定,如果正好有一個DOM元素elem的屬性ID具有值鍵,則該窗口對象必須具有一個值為elem的屬性鍵。

例如,給出以下HTML:

<div id="foo"></div>

您可以使用id作為變量來獲取HTML標記。 因此,$(foo)返回該標簽的jQuery對象。 與$('#foo')相同,它也為相同標簽返回jQuery對象。

> "foo" in window
true

> foo
<div id=​"foo">​</div>​

> $(foo)
Object [ <div#foo> ]

> $('#foo')
Object [ <div#foo> ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM