我正在尝试使用jQuery 2.0选择一个元素,其ID包含两个冒号,如下所示:
<div id="container:divobj:1">My Div</div>
我使用双反斜杠来逃避冒号:
alert($("#container\\:divobj\\:1").length());
每次我尝试运行此代码时都会收到错误:
对象[object Object]的属性'length'不是函数
我设置了jsFiddle here来说明。
我出错的任何想法?顺便说一下,我无法更改ID命名约定,因为这是在第三方上运行的用户脚本。
答案 0 :(得分:5)
长度不是方法(它的属性)
alert($("#container\\:divobj\\:1").length);
或者jquery有一个size
方法
http://api.jquery.com/size/(版本已弃用:1.8 )
alert($("#container\\:divobj\\:1").size());
答案 1 :(得分:1)
length
属性不是函数。这是...属性:))
您最终不会像使用函数那样访问带括号的属性。括号实际上是执行函数的内容。
您只需使用.length
即可获得元素数量。
另一方面,如果您尝试在末尾没有括号的情况下执行函数,它将只返回函数的定义。
例如:
var a = "STACK OVERFLOW";
console.log(a.toLowerCase);
// output: function toLowerCase() { [native code] }
console.log(a.toLowerCase());
// output: "stack overflow";