development

jQuery : value.attr은 함수가 아닙니다.

big-blog 2020. 11. 7. 10:45
반응형

jQuery : value.attr은 함수가 아닙니다.


나는 내 페이지에서 이것을 훔쳤다.

$('#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'));

원시 DOM 요소를 다루고 있습니다. jquery 객체로 래핑해야합니다.

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

each ()에 전달 된 콜백 함수의 두 번째 매개 변수 는 jQuery 래퍼 객체가 아닌 실제 DOM 요소를 포함합니다. 요소 getAttribute () 메소드를 호출 할 수 있습니다 .

$('#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.getAttribute('cat_id'));
    });
});

또는 jQuery 객체에 직접 요소를 래핑합니다.

$('#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'));
    });
});

또는 다음을 사용하십시오 $(this).

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

참고 URL : https://stackoverflow.com/questions/4114870/jquery-value-attr-is-not-a-function

반응형