programing

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

muds 2023. 8. 14. 23:11
반응형

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 메서드(예: 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'));

()에 전달된 콜백 함수의 두 번째 매개 변수에는 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'));
    });
});

저는 이것이 가장 단순한 것이라고 생각합니다.

$("element").getAttribute("<attribute_name>")

속성에 값을 설정하려는 경우

$("element").setAttribute("<attribute_name>", "<new_value>")

사용할 수도 있습니다.jQuery('.class-name').attr("href")제 경우에는 그게 더 잘 작동합니다.

자세한 내용은 다음과 같습니다."$(...)" 대신 "jQuery(...)"

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

반응형