我检索了一个 JSON 对象,其中包含键“options”和“message”,而每个选项值在文档中都有一个相应的 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();
}
});
});