Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用属性获取JSON值?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何使用属性获取JSON值?

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

我有一个带有“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="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个答案都相同,所以我选择了第一个答案。谢谢大家。