jQuery获取包含id的表单的元素

时间:2013-06-02 11:19:54

标签: javascript jquery css background

我正在尝试使用jquery从我的页面获取一个元素:

元素:

<a href="path" id="form1:ctlName">

我试图获得这样的元素并失败:

$('#form1:ctlName')

虽然这种方式有效:

document.getElementById('form1:ctlName');

问题是我需要只有jquery的.css属性。

任何人都知道如何使用jquery获取控件?

5 个答案:

答案 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 检查此网址

http://api.jquery.com/animated-selector/