一段jquery代码,求解释

<scripttype="text/javascript"src="jquery.js"></script><scripttype="text/javascript">$... <scripttype="text/javascript" src="jquery.js"></script><scripttype="text/javascript">$(function(){
$('tbody>tr:odd').addClass('odd');
$('tbody>tr:even').addClass('even');
$('tbody>tr').click(function(){
var hasSelected=$(this).hasClass('selected');
$(this)[hasSelected?"removeClass":"addClass"]('selected')
.find(':checkbox').attr('checked',!hasSelected);
});
$('tbody').has(':checked').addClass('selected');
});
</script>
<body><table><thead><tr><th></th><th>姓名</th><th>性别</th><th>暂住地</th></tr></thead><tbody><tr><td><inputtype="checkbox" name="choice" value="" /></td><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td><inputtype="checkbox" name="choice" value="" /></td><td>李四</td><td>女</td><td>浙江杭州</td></tr><tr><td><inputtype="checkbox" name="choice" value=""></td><td>王五</td><td>男</td><td>湖南长沙</td></tr><tr><td><inputtype="checkbox" name="choice" value="" /></td><td>赵六</td><td>男</td><td>浙江温州</td></tr><tr><td><inputtype="checkbox" name="choice" value="" /></td><td>Rain</td><td>男</td><td>浙江杭州</td></tr><tr><td><inputtype="checkbox" name="choice" value="" /></td><td>Maxman</td><td>男</td><td>浙江温州</td></tr></tbody></table></body>
-------------------------------------
$(this)[hasSelected?"removeClass":"addClass"]('selected') 什么意思?
展开
 我来答
百度网友bc646de
2012-08-08 · TA获得超过183个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:167万
展开全部
hasSelected?"removeClass":"addClass"是个二元选择语句
如果hasSelected为真就返回"removeClass字符串,反之返回"addClass"
hasSelected的值来自上一句的

然后$(this)返回的是把执行这个方法的对象包装成的Jquery对象,

假如hasSelected是真,就会执行$(this)["removeClass"]
就相当于$(this).removeClass

后面的('selected')就是removeClass的参数
追问
这个[    ]有什么特别的用法吗?
追答
在js对象里
a.b和a["b"]是等同的
后面那种写法可以解决这样一种情况,就是对象的键如果是个字符串的话,前者不能工作
比如a={ b:1,c=2 }
如果你要通过函数传键值用到对象
function f( str ){
alert(a[str]);

}

就可以f("b"),如果用点取对象值是实现不了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式