+ -
当前位置:首页 → 问答吧 → 关于jQuery中括号"[]"用法的求助

关于jQuery中括号"[]"用法的求助

时间:2009-09-02

来源:互联网

$('tbody>tr',this).click(function() {
//判断当前是否选中
var hasSelected=$(this).hasClass(options.selected);
//如果选中,则移出selected类,否则就加上selected类
$(this)[hasSelected?"removeClass":"addClass"](options.selected)
//查找内部的checkbox,设置对应的属性。
.find(':checkbox').attr('checked',!hasSelected);


请看那段红色代码,我不理解的是为啥"[ ]"内的代码可以这样跟在$(this)后面而不需要加 "." 或者别的连接符,  我想了解一下这个"[ ]"符号的具体用法说明! 谢谢!

作者: louiskun   发布时间: 2009-09-02

[]和.在JavaScript里的作用差不多

简单来说有个对象obj,obj有属性attr那么:obj.attr == obj['attr']

此外,数组的属性名可以为数字,而对象的属性名必须是字符串

作者: keakon   发布时间: 2009-09-02

谢谢, 但我还有点不明白,可能有点钻牛角尖了  

按照你的解释,那这句代码就是$(this)[addclass]了,这个我可以理解,但上面那句后面还加了$(this)[addclass](options.selected), 我就又不明白这个组合的 obj['attr'] () 意思了!!  呵呵  可能习惯了c#的强类型代码规范,转到js上还没适应。

作者: louiskun   发布时间: 2009-09-02

$(this)['addClass'](options.selected)

相当于

$(this).addClass(options.selected)

作者: keakon   发布时间: 2009-09-03

了解了,虽然是很微小的问题!

作者: sheva82   发布时间: 2009-09-03

噢  明白了 谢谢keakon  

作者: louiskun   发布时间: 2009-09-03

今天一上来就学到东西了 ~

作者: sd1132632   发布时间: 2009-09-04

相关阅读 更多