一段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') 什么意思? 展开
$('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') 什么意思? 展开
1个回答
展开全部
hasSelected?"removeClass":"addClass"是个二元选择语句
如果hasSelected为真就返回"removeClass字符串,反之返回"addClass"
hasSelected的值来自上一句的
然后$(this)返回的是把执行这个方法的对象包装成的Jquery对象,
假如hasSelected是真,就会执行$(this)["removeClass"]
就相当于$(this).removeClass
后面的('selected')就是removeClass的参数
如果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"),如果用点取对象值是实现不了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询