2

对于任何类型的 Web 开发,我都不是很有经验,更不用说我需要使用的 jquery 和 ajax,所以我很难过。

我正在开发一个项目,当单击一个名为“重新打开”的单独按钮时,我需要将两个复选框重新绘制为“未选中”。现在我正在使用的代码是:

$('.reopenBtn').click(function() {
    var confirm_reopen = confirm("Are you sure you want to open this opportunity back up?");
    if (confirm_reopen) {
        var href = 'cfcs/opportunity.cfc';
        var method = 'ReopenOp';
        var opsid = $(this).parent().parent().attr('id');
        $('#' + opsid).ajaxSuccess(function() {});
        $.post(href, {
            method: method,
            opsid: opsid
        });
        $('.lost').removeAttr('checked');
        $('.won').removeAttr('checked');
    }
});

这段代码的问题在于它会重新绘制页面上所有复选框的实例,而不仅仅是获胜和丢失复选框的特定实例。我正在寻找的是这样的:

$(this).('.lost').removeAttr('checked');
$(this).('.won').removeAttr('checcked');

就像我说的,我对大多数 Web 开发语言都不是很有经验,所以我真的不知道能够做到这一点的语法。我的限制是能够阅读和理解足以调整和更改它的代码,而不是从头开始任何新的东西。

任何帮助将不胜感激!

4

1 回答 1

2

您可以在选择器http://api.jquery.com/jQuery/#selector-context中将其作为上下文传递

$('.lost,.won',this).removeAttr('checked');

仅供参考,.prop()是从 jQuery 1.6+ 开始在属性中设置禁用的正确方法

于 2012-11-19T20:49:11.073 回答