2

我在这里有一些 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:

在此处输入图像描述

4

1 回答 1

5

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

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

jQuery .data() 是如何工作的?

于 2012-05-04T00:05:30.677 回答