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