我有一个jquery函数,它获取td的id值,其复选框被选中。 我需要给那些td上色。我写过这个函数,它不会给我任何错误,但也不会给td着色..
这是功能:
$('#custom-interval-tbl td').each(function() {
$(this).find('input:checkbox:checked').each(function() {
var tdId= $(this).attr("id");
var tdElement = $("#custom-interval-tbl td").eq(tdId);
console.log("TD Element"+tdElement);
tdElement.css({background:"#333333"});
});
});
有人可以告诉我,我在做什么错误吗?
感谢您的帮助。
答案 0 :(得分:1)
问题是你正在使用.eq()
(这是基于索引的),但你给的是复选框的id
。
另外,请不要使用:text /:checkbox / etc,这些在jQuery中已弃用,最好使用原生[type="checkbox"]
等。
$('#custom-interval-tbl td').each(function() {
$(this).find('input[type="checkbox"]:checked').each(function() {
// You don't need to find out ID or anything.
// Just go up to the closest <td> and give it the background
var tdElement = $(this).closest('td');
tdElement.css({ background : "#333333" });
});
});
答案 1 :(得分:1)
我认为这里的问题是第二个函数中的this
引用了checkbox
,而不是td
。试试这个:
$('#custom-interval-tbl td').each(function() {
$(this).find('input:checkbox:checked').each(function() {
var tdElement = $(this).parent("td");
console.log("TD Element"+tdElement);
tdElement.css({background:"#333333"});
});
});