jQuery问题,隔行换色

点击之后对应行变色同时复选框被选中,第一次是没事的,为什么点击取消后再次点击这一行行复选框不会被选中?<html><head><style>table{text-alig... 点击之后对应行变色同时复选框被选中,第一次是没事的,为什么点击取消后再次点击这一行行复选框不会被选中?
<html>
<head>
<style>
table{
text-align:left;
}
td{
width:150px;
}
.dan{
background-color:yellow;
}
.shuang{
background-color:blue;
}
.ed{
background-color:red;color:#ffffff;
}
</style>
<script type=text/javascript src="jquery.js"> </script>
<script type=text/javascript>
$(document).ready(function(){
$("tbody>tr:even").addClass("dan");
$("tbody>tr:odd").addClass("shuang");
$("tbody>tr:has(:checked)").addClass("ed");
$("tbody>tr").click(function(){
var hased=$(this).hasClass("ed");
if(hased)
{
$(this).removeClass("ed").find(":input").attr("checked",false);
}else {
$(this).addClass("ed").find(":input").attr("checked",true);
}

});
});
</script>
</head>
<body>
<table cellspacing="0">
<thead>
<tr>
<td></td><th>标题</th><th>时间</th><th>地点</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长2</td><td>2015</td><td>上海</td>
</tr>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长3</td><td>2015</td><td>上海</td>
</tr>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长4</td><td>2015</td><td>上海</td>
</tr>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长5</td><td>2015</td><td>上海</td>
</tr>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长5</td><td>2015</td><td>上海</td>
</tr>
<tr>
<td><input type="checkbox" ></td><td>标题一定要长5</td><td>2015</td><td>上海</td>
</tr>
</tbody>
</table>
</body>
</html>
展开
 我来答
yugi111
推荐于2016-10-25 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
$(document).ready(function() {
    var trs = $("tbody>tr");
    // 防止事件冒泡, 并处理点击换色
    trs.find(":checkbox").click(function(e) {
        var me = $(this),
            tr = me.closest("tr");
        tr.toggleClass("ed");
        e.stopPropagation 
        ? e.stopPropagation()
        : e.cancelBubble = true;
    });
    // 使用toggle轮换点击切换该行颜色以及修改该行的复选框的选择状态
    trs.toggle(function() {
        $(this).addClass("ed").find(":checkbox:not(:checked)").prop("checked", true);
    }, function() {
        $(this).removeClass("ed").find(":checkbox:checked").prop("checked", false);
        // 隔行换色
    }).each(function(i) {
        $(this).addClass(["dan", "shuang"][i % 2]);
    });
    
});
jqbmaster
2015-09-27
知道答主
回答量:17
采纳率:0%
帮助的人:8.5万
展开全部
tbody tr:nth-child(odd)
{
background:#ff0000;
}
tbody tr:nth-child(even)
{
background:#0000ff;
}

隔行变色。。。
追问
我主要想搞明白复选框的问题,为什么第一次点击是好的,点击取消后再次点击复选框不能选中了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式