我有两个问题:)
我使用Jquery在第一列中选择表行和复选框,如何使2和7列不可点击。我的意思是如果你单击7列的单元格,它将不会选中复选框,也不会添加“选定”类。
$('#tableID tbody tr')
.filter(':has(:checkbox:checked)')
.addClass('selected')
.end()
.click(function (event) {
$(this).toggleClass('selected');
if (event.target.type !== 'checkbox') {
$(':checkbox', this).attr('checked', function () {
return !this.checked;
});
}
});
我正在使用JavaScript添加所有一个列值,当表没有合并的单元格时,脚本工作正常。如何使其与合并的单元格一起使用。
_________ _________
|_|_|_|_| | |_|_|
|_|_|_|_| script working |___|_|_| script doesn't work
|_|_|_|_| |_|_|_|_|
|_|_|_|_| |___|_|_|
function count() {
var i;
var sum=0;
var table = document.getElementById("tableID");
for (i=1;i<table.rows.length-1;i++) {
sum += Number(table.rows[i].cells[3].innerHTML, 10);
}
document.getElementById('sum1').innerHTML = sum;
}
第二部分的HTML代码:http://jsfiddle.net/f4zH9/
由于
答案 0 :(得分:1)
对于第一部分,我发现了一种解决问题的不同方法:
$('#tableID tbody tr').each(function() {
$('td', $(this)).click(function() {
var index = $(this).index();
if(index != 1 && index != 6) {
$(this).parent().toggleClass('selected');
if (event.target.type !== 'checkbox') {
$(':checkbox', $(this).parent()).attr('checked', function () {
return !this.checked;
});
}
}
});
});
这会将click事件绑定到每个单元格,当用户单击并检查单元格的索引时,有效地检查您单击的列。如果索引是1或6(第2列或第7列),那么它什么都不做。这里有一个jsfiddle来展示它的实际效果:http://jsfiddle.net/cchana/vCVwv/2/
对于你的问题的第二部分,你的for循环存在问题,而不是:
for (i=1;i<table.rows.length-1;i++)
不要忘记JavaScript从0开始计数,你应该
for (i=0;i<table.rows.length;i++)
创建一个jsfiddle以显示它的实际效果:http://jsfiddle.net/cchana/WRtZP/