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
。为什么我会收到此错误?
答案 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');