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 に答える