テーブルの行をクリックすると、その行のデータ属性が「未定義」であると警告されるのはなぜですか?
$(document).on('click', 'tr', function() {
alert($(this).data("recordId"))
});
fee_source_id
これは、の変数をデータ属性としてテーブル行に(正常に)渡すPHPです。
<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コードに次のようなエラーがいくつかあることがわかりました。
- alertメソッドは、
data
要素ではなく要素を呼び出していましたattr
。 - メソッドのパラメータ
attr
がに変更されました("data-recordId")
。(注:jQueryはこのパラメーターの最初の部分を無視することを認識しているため、data-
パラメーターとして含まれていませんでした。) - アラートメソッドの最後にセミコロンがありませんでした
更新されたjQuery(これは現在機能しています)
$(document).on('click', 'tr', function() {
alert($(this).attr("data-recordID"));
});
質問:
$.on()
をサポートし、またをサポートする必要があるjQuery 1.7.2を.data()
使用していますが、このメソッドを使用する元のポジショニングは.data()
引き続き機能しますか?なぜ機能しないのですか?- data-attributeを"x"に設定する代わりに、テーブルの各行の最初の列と正確に等しいため、(
fee_source_id
)データの代わりにテーブルの各行の最初の列/セルを使用できます。 -渡された属性、そのレコードを参照するには?