2017-06-04 48 views
1

我無法在已創建的線程中找到答案。相當於在ASP.NET和jQuery中定位服務器控件

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

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

?兩者都工作得很好,所以有什麼區別?謝謝。

回答

0

兩者都可以工作,因爲瀏覽器會自動爲每個標籤ID創建一個變量,以遵循HTML5標準。見http://2ality.com/2012/08/ids-are-global.html

您的代碼:

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

呈現此Javascript生成的HTML頁面:

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

的第一個作品,因爲:

的HTML5標準規定,窗口對象必須具有一個屬性鍵,如果只有一個DOM元素elem,其值爲elem屬性ID具有值鍵。

例如,假設此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> ]