【问题标题】:rendering JSON response urls [closed]呈现 JSON 响应 URL [关闭]
【发布时间】:2014-09-06 08:25:23
【问题描述】:

我在处理对网站的 ajax 调用的 JSONP 响应时遇到问题。我的目的是让新闻项目的结果(url)显示在页面上,这样当用户点击每个链接时,他或她将被引导到包含故事的页面。然而,这并没有发生。

虽然我能够将结果显示为无序列表。相反,当我单击链接时,我会被定向到带有未找到文件消息的本地文件夹。

这是我的代码:

$(document).ready(function(){
    $.ajax({
    url:"http://api.nytimes.com/svc/news/v3/content/all/all/.jsonp",
    data: {"api-key":"uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu"},
    dataType: 'jsonp', 
    type: 'GET',    
    success:function(mydata){
      $.each(mydata.results, function(i, value){
         $("ul").append('<li>'+'<a href="">'+mydata.results[i].url+'</a>'+ '</li>');
         $("ul li a").attr("href", "mydata.results[i].url");
      });
      //alert("Success");
    }, 
    error:function(){
       alert("Error");
    },
    });
  });

【问题讨论】:

  • 你有一个错字:$("ul li a").attr("href", mydata.results[i].url); 删除变量周围的引号。
  • 为什么要添加href 创建a 标签?您还将在每个循环上用相同的值替换每个 href。创建a标签字符串时为什么不把它放进去呢?此外,由于您将 mydata... 部分放在引号中,因此这是放在该属性中的字符串文字,而不是相关变量。
  • 谢谢大家..我尝试执行以下操作,但一直收到找不到文件的消息..我不知道为什么.. $("ul").append('
  • '+ ''+mydata.results[i].url+''+ '
  • ');
  • @user3681587 因为您将mydata.results[i].url 作为字符串包含在内。如果您检查输出,它将完全是您尝试从 json 对象使用的 url 而不是。请参阅我上面的评论或下面 Parv 的回答。
  • 谢谢大家!它有效。
  • 标签: javascript jquery html ajax json


    【解决方案1】:

    用这个替换你的代码可能会有所帮助

    $.each(mydata.results, function(i, value){
                     $("ul").append('<li>'
                     +'<a href="'+mydata.results[i].url+'">'+mydata.results[i].url+'</a>'
                     + '</li>');
                  });
    

    你做错了什么
    1. 为循环的每次迭代更改每个a 的href 值。
    2.在href中设置字符串值("mydata.results[i].url")而不是
    mydata.results[i].url

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签