開発環境
Laravel 6.0
Jquery 3.2
laravel-mix 5.0.1
解決したいこと
HTMLのボタン要素をクリック時にdeleteData関数を実行し、ボタン要素の属性(data-id)を取得したいのですが、getAttributeでは問題なく取得できるのに、attrでエラーが出てしまいます。
以下コードになります。
HTML
1<button class="btn btn-danger destroy_btn" data-id="1" onclick="deleteData(this)">削除</button>
▼getAttribute()の場合
javascript
1window.deleteData = function(e){ 2 let id = e.getAttribute("data-id"); 3 console.log(id); 4} 5 6// ▼出力 71
▼attr()の場合
javascript
1window.deleteData = function(e){ 2 let id = e.attr("data-id"); 3 console.log(id); 4} 5 6// ▼出力 7ajax.js:293 Uncaught TypeError: e.attr is not a function at window.deleteData
deleteDataメソッド引数eをコンソールで確認すると
html
1<button class="btn btn-danger destroy_btn" data-id="1" onclick="deleteData(this)">削除</button>
が出力され、deleteDataメソッドが記述されているJsファイル内の他の箇所で正常にattr()で属性値を取得できた箇所の要素をコンソールで確認すると、
html
1jQuery.fn.init [thead#hs_sort_btn.table-primary] 20: thead#hs_sort_btn.table-primary 3・ 4・ 5・
が出力されました。
どちらもDOMを取得できているかなと思っているのですが、なぜjqueryのメソッドであるattr()はエラーが出て、getAttribute()は問題なく取得できるのでしょうか?
マニュアルも参照しましたが解決に至らなかったため質問させていただきます。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/09/26 14:09 編集