0

我正在尝试使用 jQuery 2.0 选择一个元素,其 ID 包含两个冒号,如下所示:

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

我正在使用双反斜杠来转义冒号:

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

每次我尝试运行此代码时,我都会收到错误消息:

对象 [object Object] 的属性“长度”不是函数

我在这里设置了一个jsFiddle来说明。

有什么想法我哪里出错了吗?顺便说一句,我无法更改 ID 命名约定,因为这是在第 3 方上运行的用户脚本。

4

2 回答 2

5

长度不是一种方法(它的属性

http://api.jquery.com/length/

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

或者 jquery 有一个size方法

http://api.jquery.com/size/不推荐使用的版本:1.8

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

http://jsfiddle.net/mohammadAdil/wtfRY/3/

于 2013-05-01T16:22:04.970 回答
1

length 属性不是函数。它是......一个属性:)

您不会像使用函数那样访问末尾带有括号的属性。括号实际上是执行函数的内容。

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

另一方面,如果您尝试在末尾不带括号执行函数,它只会返回函数的定义。

例如:

var a = "STACK OVERFLOW";
console.log(a.toLowerCase); 
// output: function toLowerCase() { [native code] }
console.log(a.toLowerCase());
// output: "stack overflow";
于 2013-05-01T16:23:50.600 回答