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 元素的值。

原文由 user290043 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 278
2 个回答

该 jQuery 对象的内容是普通 DOM 元素,它不响应 jQuery 方法(例如 .attr )。您需要通过 $() 包装值,将其转换为 jQuery 对象以使用它。

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

或者直接使用 DOM 方法

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

原文由 kennytm 发布,翻译遵循 CC BY-SA 2.5 许可协议

您正在处理原始 DOM 元素..需要将其包装在 jquery 对象中

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

原文由 Gabriele Petrioli 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏