キー "options" と "message" を含む JSON オブジェクトを取得しますが、各オプション値にはドキュメント内の対応する li 要素があります。たとえば [{"opt" : "12", "msg" : "red"} ] class="12" のリスト要素が存在します。
ユーザーがリスト要素内のリンクをクリックすると、対応する「msg」キーの値が表示されるはずです。
クリックすると JSON オブジェクトの最初の要素のメッセージ値が表示されるようになりましたが、どのリンクがクリックされても、常に JSON の最初の要素のメッセージ値が表示されます。.attr() と関係があると思いますが、よくわかりません。
私は何を間違っていますか?
これが私のコードとフィドルです:
HTML
<ul id="list">
<li class="12"> <a href="#12">Option 1</a>
</li>
<li class="37"> <a href="#37">Option 2</a>
</li>
</ul>
<div class="message" style="display:none;"></div>
JS
$("#list li a").click(function () {
var liclass = $("#list li").attr("class");
var json = [{
"opt": "12",
"msg": "Red"
}, {
"opt": "37",
"msg": "Green"
}];
$.each(json, function (key, value) {
if (json[key].opt == liclass) {
$(".message").empty().append(json[key].msg).fadeIn();
}
});
});