用于服务器端控制的jQuery Selector

$('#')$("[id$=lblName]")什么$("[id$=lblName]")

$('#<%=lblName.ClientID%>')将在ASP.Net中找到具有id属性的元素,该属性由ClientID属性提供。

$("[id$=lblName]")将找到一个id属性以lblName结尾的lblName ,例如foo-lblName

$('#<%=lblName.ClientID%>') – #是JQuery用于标识具有id的元素的Id 选择器 。

$("[id$=lblName]") – 将选择id属性以lblName 结尾的所有元素

第一个( $('#<%=lblName.ClientID%>') ),id选择器,将按其ID查找元素。 这非常快,因为它将使用本机document.getElementById

第二个, 属性结束选择器 ,以不同的方式工作。 例如,在IE中,如果它以提供的值(或类似的东西)结束,它将获得每个元素的所有元素和测试ID。 那要慢得多。 在较新的浏览器中有querySelectorAll ,可能会用于通过该选择器查找元素,但我不确定它是否受到该函数的支持(嗯, 这里定义为vailid css3所以假设现代浏览器将支持结束querySelectorAll中的selector。

因此,总之,id选择器在任何情况下都应该更快,在旧浏览器的情况下要快得多。 同时,带有选择器的结尾允许您在不将其客户端ID传递给浏览器的情况下查找元素。

只是添加我今天所知道的, $('#<%=lblName.ClientID%>')将只选择一个元素,但$("[id$=lblName]")将选择多个元素,所以如果你有相同的id分配给多个元素,如果你想遍历所有这些,那么第一个案例将无法正常工作。