无法测试每个循环中检查的输入

can't test for input checked in each loop

我有一个简单的输入复选框元素对象,我想在每个循环中检查哪些被选中并执行哪些操作。复选框在一个 tr 中在几个 td 中在 table.

这是我的代码:

$('table.occupancy-table').on('change', '.minimum_stay input', function() {
    var minimumStayInputs = $(this).closest('tr').find('input');
    $(minimumStayInputs).each(function(){
        if(this.prop('checked')) {
        //do stuff
        }
    }
}

如果我在每个循环中 console.log this,我得到的数据如下:

<input id="R11520" type="checkbox" name="minimum_stay[152][1442786400]" value="checked"> <input id="R11521" type="checkbox" name="minimum_stay[152][1442872800]" value="checked">...

但我总是从 this.prop('checked') 收到错误 Uncaught TypeError: this.prop is not a function。我也试过 .is(":checked") 结果相同。

知道原因是什么吗?

如果您需要示例 html,请告诉我,否则我应该创建 fiddle。

this 循环内是原生 DOM 元素,从 jQuery.

展开

又得包起来

$('table.occupancy-table').on('change', '.minimum_stay input', function() {
    var minimumStayInputs = $(this).closest('tr').find('input');
    $(minimumStayInputs).each(function(){
        if ( $(this).prop('checked') ) {
        }
    });
});

您也可以只使用原生 this.checked,或者如果您要计算它们

$(this).closest('tr').find('input:checked').length