jQuery.data和动态更改HTML5自定义属性

时间:2011-12-07 11:09:14

标签: javascript jquery

问题:

jQuery对象html5自定义属性正在缓存DATA。
在我的应用程序中,我有一个表单,其中包含一个具有不断变化的自定义数据属性的字段,这种特定的行为对于表单的功能是必不可少的。


我们在这里:

有一个输入字段,其中包含一些默认的自定义属性:

<input type="text" name="xxx" data-test="4">


获取自定义属性

对于$('input').data()

结果为{ test="4" }


更改自定义属性

$('input').attr('data-test','5')


再次获取自定义属性

对于$('input').data(),结果仍然{ test="4" }


问题

如何使用$.data()函数始终确保获取所有REAL自定义属性,元素上可以有多个?我在每次获取之前尝试过$.removeData(),但它会从元素中完全清除所有数据,因此无法再访问它。

1 个答案:

答案 0 :(得分:7)

您需要执行此操作:$('input').data( 'test' , 5 )

如果您致电.attr( 'test' , 5 ),您将设置一个属性,并且您正在影响它<input type='text' data-test='4' test='5' />

注意,您可以获得如下特定数据属性:var test = $('input').data('test');

修改

要删除特定数据属性,您可以执行以下操作:jQuery.removeData( $( 'input' ) , "test" );