0

勾选拒绝复选框时,我正在尝试进行下拉菜单。我已经简单地使用 Jquery 完成了此操作,但是因为我需要所有拉入数据的函数,它将类复制到下一行等等,所以当我检查拒绝按钮时,它会打开所有下拉文本区域输入原因。我想知道我将如何为无限量的数据制作这个??????所以它只会打开一个下拉文本区域。

我在网上读到我可以用php育儿做到这一点?由于我的 PHP 技能很弱,至少可以说有没有更简单的方法来解决这个问题?

HTML 名称 用户名 电子邮件 验证 拒绝

        if ($supplier['Id'] != '3') { ?>
        <tr class="unverifiedSuppliers">
          <td width="150"><?php echo $supplier['Name']; ?></td>
          <td width="150"><?php echo $supplier['Username']; ?></td>
          <td width="250"><?php echo $supplier['Email']; ?></td>
          <td width="40"><input type='checkbox' name='verifySupplier[]' value='<?php echo $supplier['Id']; ?>' /></td>
          <td width="40"><input class="checked" type='checkbox' name='rejectSupplier[]' value='<?php echo $supplier['Id']; ?>' /></td>
        </tr>           
        <tr class="dropdown" style="display: none;">
          <td colspan="5">
            <label>Reason:</label>
            <textarea name="rejectReason[<?php echo $supplier['Id']; ?>]"></textarea>
          </td>
        </tr>
        <?php } } ?>
      </table>


Jquery

$(function() {
$('.checked').change(function() {
    $('.dropdown').toggle();
});
});
4

1 回答 1

1

尝试 :

$('.checked').change(function() {
    $(this).closest('tr').next('.dropdown').toggle();
});

$(this)是您更改的 DOM 元素。

.closest('tr')正在使用 jQuery 选择器 'tr' 寻找最近的父级,这意味着最近的<tr></tr>.

.next('.dropdown')正在使用 jQuery 选择器“.dropdown”寻找下一个兄弟。

旁注- 在这里使用选择器是兼性的,如果下一个元素没有 class ,它将只返回一个空元素dropdown

于 2013-07-30T19:02:19.593 回答