我正在尝试使用jquery从我的页面获取一个元素:
元素:
<a href="path" id="form1:ctlName">
我试图获得这样的元素并失败:
$('#form1:ctlName')
虽然这种方式有效:
document.getElementById('form1:ctlName');
问题是我需要只有jquery的.css属性。
任何人都知道如何使用jquery获取控件?
答案 0 :(得分:2)
选择器中的:
会出现问题,因为jQuery会尝试将其解释为选择器的扩展名。冒号选择器的一些用法是伪类:first
或:last
,您可以获得这些选择器扩展的完整列表here。
尝试这些选择器:
$("[id='form1:ctlName']"); //Method one, encapsulating the id
$("#form1\\:ctlName"); //Method two, escaping the colon
这是一个有效的demo
请注意,根据this answer,调用原生javascript方法getElementById(yourId)
将比其他方法快10倍,因此如果性能至关重要,您可能需要考虑使用它。
答案 1 :(得分:2)
那是因为':'在jQuery中有特殊含义。你应该逃避它。
$('#form1\:ctlName'); // Does not work
显然你应该用两个斜线来逃避它:
$('#form1\\:ctlName'); // Works
答案 2 :(得分:2)
比其他答案(循环遍历所有元素以检查ID属性)更高效,是这样的:
$(document.getElementById('form1:ctlName'))
jQuery只是一个包装DOM元素的函数。您可以毫无问题地将DOM元素传递给它。
答案 3 :(得分:1)
逃避:用两个&#34; \&#34;
$('#form1\\:ctlName')
- 有一个&#34; \&#34;,它不起作用。 http://jsfiddle.net/m8Vrt/
- 有两个&#34; \&#34;,它有效http://jsfiddle.net/eQT6w/1/
答案 4 :(得分:0)
试试这个
<a href="path" id="form1_ctlName">
$('#form1_ctlName')
只需替换:with _
:jquery选择器中的限制char 检查此网址