我希望这是我所做的愚蠢的事情。我在底部附近有一个函数 unigref ,它(我相信)输出一个字符串。但是,当我调用该函数来构建 jQuery 选择器时,我无法让它正常工作。我知道其他一切都有效,因为当我使用静态字符串时,单选按钮被选中。
这是我的 jsfiddle/9Edxx 。请帮忙。
var checkCount = 0;
var maxChecks = 2;
$(document).ready(function() {
$("#test").click(function() {
alert($(':checked').length);
});
$(':checkbox[name=checkbox]').change(function() {
checkCount = $(':checkbox:checked').length;
if (checkCount >= maxChecks) {
$(':checkbox[name=checkbox]').not(':checked').attr('disabled', true);
$(":radio[value="+uniqref()+"]").prop('checked', true);
} else {
$(':checkbox[name=checkbox]:disabled').attr('disabled', false);
}
if (this.checked) {
$("td.label").append("<label>" + this.value + "</label>");
} else {
$("td.label").find(":contains('" + this.value + "')").remove();
}
});
$('#button').click(function() {
alert(uniqref());
});
function uniqref() {
return $("td.label").text().split('').sort().join('').replace(/\s/g, "");
}
});
更新:拼写错误已正确,但问题仍然存在。
最佳答案
是的,这真的很愚蠢:这只是一个错字。
$(":radio[value="+unigref()+"]").prop('checked', true);
应该是
$(":radio[value="+uniqref()+"]").prop('checked', true);
使用小写的Q
而不是G
。
此外,您在实际更新 td.label 的值之前调用 uniqref()。
应该按照这个顺序:
if (this.checked) {
// ...
}
if (checkCount >= maxChecks) {
// ...
}
关于javascript - 为什么函数不会输出到这个 jQuery 选择器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885497/