jQuery 选择器:如果选中一个复选框,那么我还想将同一行中的另一个复选框的属性更改为选中

发布于 2024-10-03 12:49:59 字数 1095 浏览 1 评论 0 原文

我有一张大桌子。每行有两个复选框。如果选中一个,那么我还想将同一行中另一个复选框的属性更改为选中。

我在粘贴箱上的代码

<script language="javascript" type="text/javascript">
$(document).ready(function(){
 $(".BookTable input[name=attended]").click(function() {

     if ($(this).attr("checked") == true)
   {
         $("input").parent().parent("input[name=attended]").attr("checked","yes");
   } 
 });    
});
</script>

<table class="BookTable adj-table">
<tr>
<td>Joe</td>
<td>Bloggs</td>
<td><input name="booking" id="booking"  type="checkbox" value="1" /></td>
<td><input name="attended" id="attended"  type="checkbox" value="1" /></td>
</tr>
<tr>
<td>Dave</td>
<td>Smith</td>
<td><input name="booking" id="booking"  type="checkbox" value="1" /></td>
<td><input name="attended" id="attended"  type="checkbox" value="1" /></td>
</tr>
</table>

到目前为止,我似乎只能让它选择所有复选框。

I have a large table. In each row is two checkboxes. If one is checked then I also want to change the attribute of the other checkbox in the same row to checked.

My Code on Paste Bin

<script language="javascript" type="text/javascript">
$(document).ready(function(){
 $(".BookTable input[name=attended]").click(function() {

     if ($(this).attr("checked") == true)
   {
         $("input").parent().parent("input[name=attended]").attr("checked","yes");
   } 
 });    
});
</script>

<table class="BookTable adj-table">
<tr>
<td>Joe</td>
<td>Bloggs</td>
<td><input name="booking" id="booking"  type="checkbox" value="1" /></td>
<td><input name="attended" id="attended"  type="checkbox" value="1" /></td>
</tr>
<tr>
<td>Dave</td>
<td>Smith</td>
<td><input name="booking" id="booking"  type="checkbox" value="1" /></td>
<td><input name="attended" id="attended"  type="checkbox" value="1" /></td>
</tr>
</table>

So far I can only seem to get it selecting all checkboxes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青萝楚歌 2024-10-10 12:50:00

您可以使用 .closest() 转到 然后 .find() 输入,如下所示:

$(".BookTable :checkbox").change(function() {
  $(this).closest("tr").find(":checkbox").attr("checked", this.checked);
});

您可以在此处进行测试。如果您只想检查而不是取消检查另一个,只需在其中添加一个 if() 像这样

$(".BookTable :checkbox").change(function() {
  if(this.checked)
    $(this).closest("tr").find(":checkbox").attr("checked", true);
});

You can use .closest() to go up to the <tr> then .find() inputs inside, like this:

$(".BookTable :checkbox").change(function() {
  $(this).closest("tr").find(":checkbox").attr("checked", this.checked);
});

You can test it out here. If you only want to check but not un-check the other, just add an if() in there like this:

$(".BookTable :checkbox").change(function() {
  if(this.checked)
    $(this).closest("tr").find(":checkbox").attr("checked", true);
});
谎言 2024-10-10 12:50:00
$(".BookTable :checkbox").click(function(){
    if ($(this).is(":checked"))
        $(this).parents("tr").find(":checkbox").attr("checked", "checked");
    else
        $(this).parents("tr").find(":checkbox").removeAttr("checked");
});
$(".BookTable :checkbox").click(function(){
    if ($(this).is(":checked"))
        $(this).parents("tr").find(":checkbox").attr("checked", "checked");
    else
        $(this).parents("tr").find(":checkbox").removeAttr("checked");
});
不甘平庸 2024-10-10 12:50:00

你不能有两个同名的 id,你应该将它们作为一个类

You can't have two id's with the same name you should make them a class

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文