jQuery选择包含ID冒号
问题描述:
我试图选择使用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命名约定,因为这是在第三方上运行的用户脚本。
答
长度不是方法(它的属性)
alert($("#container\\:divobj\\:1").length);
或者jQuery有针对
http://api.jquery.com/size/(版本弃用:1.8)一size
方法
alert($("#container\\:divobj\\:1").size());
+0
是的,这是做的伎俩!我已经使用了一百万次...不知道我错过了这个! – QFDev 2013-05-01 16:27:03
答
的length
财产不是一个函数。这是...一个属性:)
你不会像在功能上一样访问带括号的属性。圆括号实际上是执行该功能的东西。
您可以简单地使用.length
来获取元素的数量。
另一方面,如果您尝试执行函数而没有括号,那么它将简单地返回函数的定义。
例如:
var a = "STACK OVERFLOW";
console.log(a.toLowerCase);
// output: function toLowerCase() { [native code] }
console.log(a.toLowerCase());
// output: "stack overflow";
';'是分号。 ':'是冒号。 – 2013-05-01 16:21:39
它是'长度'(属性),而不是'长度()'(一种方法) – billyonecan 2013-05-01 16:22:11
哦亲爱的,这是漫长的一天:/ – QFDev 2013-05-01 16:23:22