如何使用Jquery获取父自定义属性值

时间:2013-08-27 16:26:26

标签: jquery checkbox

我有动态行的复选框,我想要做的是获得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 }; ?>

3 个答案:

答案 0 :(得分:1)

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

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

您是id上的绑定事件,但您没有id likr status - 但是其名称使用属性select for name。同时绑定 document.ready 中的事件,并确保您已成功包含 jQuery。

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

答案 1 :(得分:1)

您必须使用.data()

$(this).parent().data('tt-id')

答案 2 :(得分:0)

正如我所看到的那样,您生成的代码不止一次吗?这意味着您有多个具有相同ID的<td id="chk">个元素,而您无法拥有这些元素。您可以查看here

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