Javascript 如果检查了另一个输入,如何检查该输入?

Javascript 如果检查了另一个输入,如何检查该输入?,javascript,jquery,Javascript,Jquery,如果选中了另一个复选框,我将尝试自动选中隐藏的复选框数组 我的HTML代码(我使用的是laravel.blade视图): 当我试图得到他们的价值观时,这对我来说是行不通的 var ids = $('input[name="booking_id[]:checked"]').map(function(){ return this.value; }).get(); console.log(ids); 您的选择器不正确,选择器中应显示:checked 我提供了一种解决您的问题的替代方

如果选中了另一个复选框,我将尝试自动选中隐藏的复选框数组

我的HTML代码(我使用的是laravel.blade视图):

当我试图得到他们的价值观时,这对我来说是行不通的

var ids = $('input[name="booking_id[]:checked"]').map(function(){ 
    return this.value; 
}).get();  

console.log(ids);

您的选择器不正确,选择器中应显示:checked

我提供了一种解决您的问题的替代方法,它使用稍微不同的代码。我在每个可见的输入复选框上都附加了一个单击事件,下面的代码行将根据可见的复选框选中/取消选中隐藏的复选框:

$(this).closest("tr").find("input[name='booking_id[]']").prop('checked', $(this).prop('checked'));
  • $(此)
    从单击的复选框开始
  • .closest(“tr”)
    向上移动DOM树,直到找到第一行元素
  • .find(“input[name='booking\u id[]]”)
    在DOM树下搜索任何名为“booking\u id[]”的输入
  • .prop('checked',$(this).prop('checked'))
    更改当前元素的属性
    checked
    (即预订id复选框),以匹配最初单击的元素的
    checked
    属性

演示
//将单击事件添加到每个可见复选框中
$(文档)。在(“单击”,“输入[name='check[]']”上,函数(){
//向上遍历DOM到行,然后找到任何具有booking_id[]name的输入,根据可见项将其标记为选中/未选中
$(this).closest(“tr”).find(“input[name='booking_id[]']).prop('checked',$(this.prop('checked')));
});
$(“#编译”)。单击(函数(){
var id=$('input[name=“booking_id[]”:checked').map(函数(){
返回此.value;
}).get();
控制台日志(ids);
});

ID10
ID20
ID30
出于演示目的取消隐藏

编译
请在JS中显示一个简化的HTML示例,例如将其归结为3或4行HTML。为什么在
名称
属性选择器中选中了
?您已经在这里使用了正确的选择器:
$(“输入[name='check[]']:checked”)
。首先,您的HTML本身就变形了,在
标记中随机输入是不正确的标记。如果标记格式不正确,那么在尝试导航DOM时,仅此一项就可能导致JavaScript出现一系列问题。@Xufox谢谢你,伙计。。。这就是原因!我觉得自己像地狱一样愚蠢…这是有史以来最好的评论!谢谢你把它清理干净
var ids = $('input[name="booking_id[]:checked"]').map(function(){ 
    return this.value; 
}).get();  

console.log(ids);
$(this).closest("tr").find("input[name='booking_id[]']").prop('checked', $(this).prop('checked'));