我无法在已创建的主题中找到答案。是
$(<%=txtRating.ClientID%>).val("Set the value");
相当于
$("#<%=txtRating.ClientID%>").val("Set the value");
?两者都工作得很好,所以有什么区别吗?谢谢。
答案 0 :(得分:0)
两者都有效,因为浏览器会自动为每个标记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具有值key,则window对象必须具有值为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> ]