我的jQuery代码有问题,我的Firebug给了我警告:Selector expect。
以下是代码:
$("img[id$='_tick']").each(function() {
$(this).click(function() {
var tickIDFinder = $(this).attr("id");
var tickSection = tickIDFinder.slice(0,1);
var checkboxID = "\"input[id^='" + tickSection + "_checkbox_']\"";
var airTableID = "#" + tickSection + "_airline_table tr";
$(checkboxID).each(function() {
if ( $(this).is('checked') ) {
alert("Checkbox is Checked.");
}
$(this).attr('checked','checked');
});
});
});
我要做的是编写一个jQuery以允许用户单击一个链接(作为图像)。当用户单击此图像时,它将“检查”指定的所有复选框。然后我会从我的Firebug中得到Selector预期的警告。
jQuery本身就像我预期的那样工作。我只是想尝试修复警告。
任何人都可以提供帮助?我真的很感激。
感谢你的想法。
答案 0 :(得分:4)
替换
var checkboxID = "\"input[id^='" + tickSection + "_checkbox_']\"";
与
var checkboxID = "input[id^='" + tickSection + "_checkbox_']";
(除了@rahul说的话):
答案 1 :(得分:2)
除了其他答案之外,还可以进一步简化,例如:
$("img[id$='_tick']").click(function() {
var tickSection = this.id.slice(0,1);
var checkboxID = "input[id^='" + tickSection + "_checkbox_']";
var airTableID = "#" + tickSection + "_airline_table tr";
$(checkboxID).each(function() {
if (this.checked) {
alert("Checkbox is Checked.");
}
$(this).attr('checked', true);
});
});
这里有一些事情:
可能没有调试,它甚至更简单,因为.attr()
也适用于多个元素:
$("img[id$='_tick']").click(function() {
$("input[id^='" + this.id.slice(0,1) + "_checkbox_']").attr('checked', true);
});
答案 2 :(得分:1)
替换
if ( $(this).is('checked'))
与
if ( $(this).is(':checked'))
请参阅:checked
您可以使用比this.id
$(this).attr("id")
var tickIDFinder = this.id;