1. ホーム
  2. javascript

[解決済み] jQuery: value.attr は関数ではありません。

2022-02-17 12:50:15

質問

私のページにはこのように書かれています。

$('#category_sorting_form_save').click(function(){
    var elements = $("#category_sorting_elements > div");
    $.each(elements, function(key, value) {
        console.info(key," : ",value);
        console.info("cat_id: ",value.attr('cat_id'));
    });
});

そして、実行されると

0 : <div class="dragable" cat_id="6" value="" style="opacity: 1;">    
value.attr is not a function
    console.info("cat_id: ",value.attr('cat_id'));

私はここで何を間違えているのでしょうか?私は div.cat_id 要素の値を取得しようとしています。

どのように解決するのですか?

そのjQueryオブジェクトの中身は、jQueryのメソッドに反応しないプレーンなDOM要素(例えば .attr ). その値を $() を使用して、jQueryオブジェクトに変換して使用します。

    console.info("cat_id: ", $(value).attr('cat_id'));

または、DOMメソッドを直接使用する

    console.info("cat_id: ", value.getAttribute('cat_id'));