我有这个选项:
<select id="options">
<option val="n_0" data-option-code="code_0">option 0</option>
<!-- ... -->
</seclect>
当我这样做时:
$("#options option:first").data('option-code', 'new-value');
似乎没有任何反应。我的意思是,我总是有data-option-code="code_0"
。我做错了什么?
答案 0 :(得分:3)
data()
setter方法将信息添加到jQuery的内部缓存中。它不会影响DOM。如果您使用data()
的getter,您会看到信息已正确存储,例如:
var foo = $("#options option:first").data('option-code'); // = 'new-value'
如果您需要在DOM中更新data
属性,请使用attr()
:
$("#options option:first").attr('data-option-code', 'new-value');