无法调用未定义类jQuery的方法'attr'

时间:2014-01-01 23:20:41

标签: jquery

HTML

<input type="number" id="progress-update-1234" class="progress-update" data-entryid="1234" data-updateItem="progress" value="3" min="1" max="15" />

的jQuery

$( ".progress-update" ).change(function() {

    var entry_id = this.$.attr('data-entryid');
    var item_entry = this.$.attr('data-updateItem');
    var new_progress = $("#progress-update-" + entry_id).val();

    alert( "This is progress update" + entry_id + " and type " + item_entry + " and new progres " + new_progress );
});

我不确定为什么这会在控制台中返回错误:Cannot call method 'attr' of undefined。我在附加到正确类的this函数中使用change。为什么我会收到此错误?

3 个答案:

答案 0 :(得分:1)

像这样使用:

var entry_id = $(this).attr('data-entryid');

attr是一个jQuery函数,这就是它只能用于jQuery对象的原因。 this不是jQuery对象,$(this)是。

答案 1 :(得分:1)

您的代码应如下所示

var entry_id = $(this).attr('data-entryid');

答案 2 :(得分:1)

您必须使用jQuery

包装元素
var entry_id = $(this).attr('data-entryid');
var item_entry = $(this).attr('data-updateItem');