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