为什么当我单击表格行时,它会提醒该行数据属性为“未定义”吗?
$(document).on('click', 'tr', function() {
alert($(this).data("recordId"))
});
这是PHP,它(成功)将变量fee_source_id
作为数据属性传递到表行中
<table = "all_aifs">
<tr>
<th><b>Invoice ID</b></th>
<th><b>Company Name</b></th>
<th><b>Invoice Date</b></th>
<th><b>Link</b></th>
</tr>
<?php foreach($result as $index => $row) : ?>
<tr data-recordId="<?=$row[id];?>"
class="<?=$row["match"] ? "match" : "";?>">
<td><?php echo $row[id]; ?></td>
<td><?php echo $row[company_name]; ?></td>
<td><?php echo $row[invoice_date]; ?></td>
<td></td>
</tr>
更新 感谢下面的评论,我发现上面的 JavaScript 代码中有一些错误,如下所示:
- 警报方法正在调用
data
元素而不是attr
元素。 - 该
attr
方法的参数已更改为("data-recordId")
. (注意:jQuery 知道忽略此参数的第一部分,因此data-
没有作为参数包含在内。) - 警报方法末尾缺少分号
更新了 jQuery(现在可以使用)
$(document).on('click', 'tr', function() {
alert($(this).attr("data-recordID"));
});
问题:
- 我正在使用 jQuery 1.7.2,它支持
$.on()
并且应该也支持.data()
等等,我原来使用该.data()
方法的 positng 是否仍然有效?为什么它不起作用? - 不要将数据属性设置为“x”,因为它完全等于表格中每一行的第一列,(
fee_source_id
)我可以只使用表格每一行中的第一列/单元格而不是数据- 已通过的属性,以引用该记录?