Javascript Jquery-On keyup更改数据属性值

Javascript Jquery-On keyup更改数据属性值,javascript,jquery,html,Javascript,Jquery,Html,我正在给文档添加一些HTML。HTML的一部分是文本输入。当我在此输入中输入信息时,我想更新最近的li数据值的值 目前这不起作用。但是,如果我将数据('name')更改为CSS,它就会工作。我已检查该值是否已被分配,并且它已被分配 你知道为什么这样不行吗?提前谢谢 $(document).on('keyup','.image-name', function() { var value = $(this).val(); $(this).closest('li.image').d

我正在给文档添加一些HTML。HTML的一部分是文本输入。当我在此输入中输入信息时,我想更新最近的
li
数据值的值

目前这不起作用。但是,如果我将数据('name')更改为CSS,它就会工作。我已检查该值是否已被分配,并且它已被分配

你知道为什么这样不行吗?提前谢谢

$(document).on('keyup','.image-name', function() {
     var value = $(this).val();
     $(this).closest('li.image').data('name', value);
}).keyup();

经过一番研究,我终于解决了这个问题。仍然不确定它为什么不起作用,但是

我已将数据('name',value)更改为attr('data-name',value),并且宾果

$(document).on('keyup','.image-name', function() {
     var value = $(this).val();
     $(this).closest('li.image').attr('data-name', value);
}).keyup();

使用attr()vs data()时,几乎没有什么问题 Short-version-data()将把数据保存在内存中,不会在html元素上设置属性,但您仍然可以检索它,即使您以前设置过throuhg attr(),但从其他方面看,它的效果并不太好

这是一篇很好的文章,有很多例子-


希望有帮助。

你能提供一把小提琴吗?谢谢泰迪。我已经设法修复了它。我认为
data
可以设置为属性,如
.attr('data','value')
$(this).closest('li.image')。data('name',value)这也很好,但您无法看到firbug html的影响。如果您在console.log($(this.closest('li.image').data('name'))下面运行,您将获得value。是的,这就是我在您的问题中的评论:)