jquery设置数据attr

时间:2012-10-13 10:21:30

标签: jquery

HTML

<div id="you" data-you="Hello mean">super</div>

是#you html元素更改数据 - 属性

console.log($("#you").data("you")); // Hello mean

$("#you").attr("data-you", "yes change you atribute");

console.log($("#you").data("you")); // Hello mean | does not change.

当我改变时,属性“数据 - 你”不会改变。我怎么能这样做?

谢谢。

6 个答案:

答案 0 :(得分:67)

已经有一个答案被选为一个正确的答案,但它似乎 没有一个答案清楚,简明地解释发生了什么 所以让我试一试:

$(element).data(key, value) 更改元素的html5'data- *'属性,jQuery在内部存储键值(在jQuery.cache中)。
因此,当您调用$(element).data(key)时,您将获得jQuery内部存储的内容。

在这里回答你的问题:

由于您希望更改html代码的data-you属性,因此您需要使用attr()方法

因此:

console.log($("#you").attr("data-you")); // Hello mean

$("#you").attr("data-you", "yes change you atribute");

console.log($("#you").attr("data-you")); // The data-you attribute has been changed.

答案 1 :(得分:26)

attr()您不必更改data()方法。

尝试以下方式:

console.log($("#you").data("you")); // Hello mean

$("#you").data("you", "yes change you atribute"); // yes change you atribute

console.log($("#you").data("you")); //  yes change you atribute

数据示例 http://api.jquery.com/data/

答案 2 :(得分:2)

按照同样的逻辑,看看结果;将data更改为attr

console.log($("#you").attr("data-you"));

参考 LIVE DEMO

答案 3 :(得分:1)

试试这个:

$("#you").data("you", "yes change you atribute");

答案 4 :(得分:0)

有关更多信息==> How to Get & Set Data Attribute Value From HTML Elements jQuery - Tutsmake

使用以下语法,您可以设置属性和值。

$(selector).attr(attribute,value);  

通过示例设置数据属性值

$('#myClass').attr("data-id",50); 

答案 5 :(得分:-3)

<script>
/*Works only with Chrome 
Inspired by Erik Deiner's concept :
http://dribbble.com/shots/435827-Concept-for-budget-price-slider
*/
$('#rate4').on("input", function() {
  $('#rate_out4').val('£' + parseFloat(this.value, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
}).trigger("change");
</script>