javascript - 为什么函数不会输出到这个 jQuery 选择器中?

标签 javascript jquery

我希望这是我所做的愚蠢的事情。我在底部附近有一个函数 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, "");
}


});​

更新:拼写错误已正确,但问题仍然存在。

http://jsfiddle.net/9Edxx/

最佳答案

是的,这真的很愚蠢:这只是一个错字。

$(":radio[value="+unigref()+"]").prop('checked', true);

应该是

$(":radio[value="+uniqref()+"]").prop('checked', true);

使用小写的Q而不是G

<小时/>

此外,您在实际更新 td.label 的值之前调用 uniqref()。

应该按照这个顺序:

if (this.checked) {            
    // ...
}

if (checkCount >= maxChecks) {            
    // ...
}

http://jsfiddle.net/7mvmT/7/

关于javascript - 为什么函数不会输出到这个 jQuery 选择器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885497/

相关文章:

javascript - 为什么一切正常时 importNode 不执行?

javascript - 读取从url下载的csv数据中的单个数据

javascript - 如何检测使用 window.open() 打开的窗口关闭事件

javascript - Visual Studio 中 CSS/javascript 的 Vim 样式折叠

javascript - 循环遍历数组以创建二维数组 - 循环不起作用?

jquery - 使对象在 div 换行的约束范围内移动?

javascript - 函数内循环

javascript - AngularUI map 绑定(bind)事件

javascript - 如何将 Spring 表单设置为只读?

javascript - 用facebook做ajax功能