如何在jQuery中获取指定div的选中复选框值

Posted

技术标签:

【中文标题】如何在jQuery中获取指定div的选中复选框值【英文标题】:How to get checked checkbox value of specified div in jQuery 【发布时间】:2015-08-15 21:45:57 【问题描述】:
<td id="optrep0">
  <input type="checkbox" value="1" class="warna" id="warna" name="warna[]"> 
  <input type="checkbox" value="2" class="warna" id="warna" name="warna[]">
  </td>
<td id="optrep1">
  <input type="checkbox" value="1" class="warna" id="warna" name="warna[]"> 
  <input type="checkbox" value="2" class="warna" id="warna" name="warna[]">
  </td>
<td id="optrep2">
  <input type="checkbox" value="1" class="warna" id="warna" name="warna[]"> 
  <input type="checkbox" value="2" class="warna" id="warna" name="warna[]">
  </td>

我需要找到指定divs 的检查值,上面有ids: optrep0,optrep1,optrep2,我尝试过使用

var optrep0= jQuery(':checkbox:checked').map(function () 
    return this.value;
).get();

并将optrep0 变量发送到服务器,但它会发送每个检查的值。所以,我只想为每个变量发送指定的divs,我也试过了

 var optrep0= jQuery('#optrep0>#warna:checkbox:checked').map(function () 
     return this.value;
 ).get();

PS: td id 上的子 id 名称不能按原样更改,我只需要 javascript 示例如何解决这种情况,谢谢 :D

【问题讨论】:

为什么你有相同的id 是的。因为服务器固定为选择器发送相同的 id,所以我无法更改名称,但我只能创建父 id 以使选项唯一 所以生成不同的id,例如:warna1warna2,或者使用timestamp。 :) 我之前说过,子id名称“warna”不能改变,应该按原样使用,因为服务器问题,只需要找到如何解决这种情况 是的,名字是不能改的,但是如果输入生成到一个循环中,就很容易做到,或者使用javascript来做到这一点! ;) 【参考方案1】:

&gt; 中留出空间并将dot 用于类warna

Live Demo

var optrep0= jQuery('#optrep0 > .warna:checkbox:checked').map(function () 
    return this.value;
).get();

【讨论】:

感谢您的快速回答,终于我可以继续前进了:D 再次感谢阿迪尔先生【参考方案2】:

通过放置&gt; 尝试使用后代选择器,不要使用:checkbox,只需要:checked

var optrep0= jQuery('#optrep0 > :checked').map(function () 
 return this.value;
 ).get();

【讨论】:

【参考方案3】:

我会说最好的方法是

var optrep0= jQuery('#optrep0 > .warna:checkbox:checked').map(function () 
    return this.value;
).get();

DEMO

【讨论】:

以上是关于如何在jQuery中获取指定div的选中复选框值的主要内容,如果未能解决你的问题,请参考以下文章

jquery怎么实现选中一个li然后显示一个div下面的ul

如何在jquery中获取选中复选框的ID

Jquery在asp.net mvc的html表中获取带有选中复选框的行

如何在jquery数据表中获取多个复选框选中的值

Jquery,如何获取复选框未选中事件和复选框值?

选中复选框时jQuery隐藏div,未选中时显示