1

我有动态的复选框行,我想做的是获取 Parent Tr Custom 属性值但无法这样做,我正在做这样的事情

   jQuery('[id^="status-"]').click(function(event) {
    var parentTrID = $(this).parent().find('data-tt-id');
    alert(parentTrID);
});

这是我的 HTML/Php 部分

       <?php
            $count = 0;
            foreach ($this->Allocations as $Allocation)
            {
                $count++;
                ?>
                <tr id="<?php echo $count; ?>" data-tt-id="<?php echo $Allocation->getId(); ?>" <?php echo (is_object($Allocation->getParent()) ? 'data-tt-parent-id="' . $Allocation->getParent()->getId() . '"' : ''); ?>>
                    <td><?php echo @$Allocation->getName(); ?></td>
                    <td id="chk"><input type="checkbox" name="status[]" value="<?php echo $Allocation->getId(); ?>"></td>
                    <td><input  type="hidden" id="code-<?php echo $count; ?>" name="code-<?php echo @$Allocation->getCode(); ?>"></td>
                </tr>
            <?php }; ?>
4

3 回答 3

2

你必须使用.data()

$(this).parent().data('tt-id')
于 2013-08-27T16:28:02.133 回答
1

您可能需要data()代替find(),因为 find 用于查找 html 元素而不是 html 元素的属性。由于您具有数据属性,因此您最好使用数据而不是attr()

 var parentTrID = $(this).closest('tr').data('tt-id');

您正在 id 上绑定事件,但您没有 id likr status- 但它的名称使用属性选择作为名称。还要在document.ready中绑定事件并确保您已成功包含jQuery。

jQuery('[name^="status-"]').click(function(event) {
    var parentTrID = $(this).closest('tr').find('data-tt-id');
    alert(parentTrID);
});
于 2013-08-27T16:27:42.460 回答
0

如我所见,您不止一次生成此代码,对吗?这意味着您有多个<td id="chk">具有相同 ID 的元素,而您不能拥有。你可以在这里查看它。

因此,首先添加一些代码来生成唯一 ID。(喜欢<td id="chk_<?php echo $count; ?>">

于 2013-08-27T18:02:08.907 回答