2013-05-01 113 views
0

我试图选择使用jQuery 2.0与含有两个冒号如下编号的元素:jQuery选择包含ID冒号

<div id="container:divobj:1">My Div</div> 

我使用的是双反斜线逃避冒号:

alert($("#container\\:divobj\\:1").length()); 

每次我尝试运行此代码,我得到的错误:

Property 'length' of object [object Object] is not a function

我设置一个jsFiddle here来说明。

任何想法我错了吗?顺便说一下,我无法更改ID命名约定,因为这是在第三方上运行的用户脚本。

+0

';'是分号。 ':'是冒号。 – 2013-05-01 16:21:39

+2

它是'长度'(属性),而不是'长度()'(一种方法) – billyonecan 2013-05-01 16:22:11

+0

哦亲爱的,这是漫长的一天:/ – QFDev 2013-05-01 16:23:22

回答

1

length财产不是一个函数。这是...一个属性:)

你不会像在功能上一样访问带括号的属性。圆括号实际上是执行该功能的东西。

您可以简单地使用.length来获取元素的数量。

另一方面,如果您尝试执行函数而没有括号,那么它将简单地返回函数的定义。

例如:

var a = "STACK OVERFLOW"; 
console.log(a.toLowerCase); 
// output: function toLowerCase() { [native code] } 
console.log(a.toLowerCase()); 
// output: "stack overflow";