Javascript 如何使用属性获取JSON值?
我有一个带有“rel”属性的链接:Javascript 如何使用属性获取JSON值?,javascript,jquery,json,Javascript,Jquery,Json,我有一个带有“rel”属性的链接: <a href="#" rel="music">Click</a> <p></p> $('a').click(function() { var whatLink = $('a').attr('rel'); $('p').text(myStyle.whatLink.band); }); 我想使用jQuery根据'rel'属性从JSON中获取值: <a href="#" rel="mus
<a href="#" rel="music">Click</a>
<p></p>
$('a').click(function() {
var whatLink = $('a').attr('rel');
$('p').text(myStyle.whatLink.band);
});
我想使用jQuery根据'rel'属性从JSON中获取值:
<a href="#" rel="music">Click</a>
<p></p>
$('a').click(function() {
var whatLink = $('a').attr('rel');
$('p').text(myStyle.whatLink.band);
});
我看到“风格”的价值是“音乐”,但点击链接的结果是
TypeError:无法读取未定义的属性“band”
有可能吗
TypeError:无法读取未定义的属性“band”
这是因为myStyle
的whatLink
属性不存在,因此返回undefined
,这当然没有band
属性
使用括号表示法
$('a').click(function() {
var whatLink = $('a').attr('rel');
$('p').text(myStyle[whatLink].band);
});
…否则,whatLink
就是字面意思。试试看
$('a').click(function() {
var whatLink = $('a').attr('rel');
$('p').text(myStyle[whatLink].band);
});
使用变量访问属性时,点运算符不起作用,必须使用字典/数组运算符。如果使用
$('a').click(function() {
var whatLink = $('a').attr('rel');
$('p').text(myStyle[whatLink].band);
});
…whatLink
总是会为您提供页面中最后一个(或第一个,不记得了)a的rel
值。要真正检查您刚才单击的链接的rel
值,请在事件内的选择器中使用this
而不是'a'
。就像这样
$('a').click(function() {
var whatLink = $(this).attr('rel');
$('p').text(myStyle[whatLink].band);
});
rel
“描述当前文档与href属性指定的锚点之间的关系”。它不是存储任意数据的地方。使用HTML5的data-*属性。该变量包含一个JavaScript对象,而不是JSON。@昆汀:尽管Lightbox会让你相信它是:因为我应该提到我是个新手。谢谢你的提示。所有3个答案都相同,所以我选择了第一个答案。谢谢大家。