为jquery设置数据属性值似乎无法使其适用于data()

时间:2012-05-04 00:01:36

标签: jquery html

我在这里有一些HTML和脚本:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {

    $("#options").attr("data-previousvalue1", $("#options").val());

        $("#options").data("previousvalue2", $("#options").val());
});
</script>
</head>
<body>
<select id="options">
    <option value="1">option 1</option>
<option selected="selected" value="2">option 2</option>
<select>
</body>
</html>

所以,这只有一半像我期望的那样工作:

$("#options").attr("data-previousvalue1", $("#options").val());

设置data-previousvalue1 = 2,这是好的

但我期待:

("#options").data("previousvalue2", $("#options").val());

设置data-previousvalue2 = 2.

我是否误解了数据方法?从我的搜索和阅读中,这应该有用。

这是输出html:

enter image description here

1 个答案:

答案 0 :(得分:5)

当使用jQuery的数据方法时,它实际上将值存储在缓存中,在检查元素时不可见。如果您调用诸如alert($(“#options”)。data(“previousvalue2”))之类的数据,数据将在那里;

请查看此文章了解更多详情。

How does jQuery .data() work?