【问题标题】:Jquery: Extracting the hrefs from multiple links on a pageJquery:从页面上的多个链接中提取href
【发布时间】:2010-04-01 23:36:24
【问题描述】:

我发现 .attr() 只适用于页面上第一个匹配的元素!因此,我一直在尝试从页面上所有匹配的元素中获取 href,但无济于事。

这是我暂时写的:

    var thelinks = $("td a").each(function(){
    $(this).attr("href");
    document.write(thelinks);
});

我使用 document.write 只是为了看看发生了什么,我得到了一长串“undefinedundefinedundefined”

我要做的是从每个 td a 中提取 href,然后使用 ajax 访问这些页面并做其他事情。当它只处理一个链接时,我可以让它正常工作,但是我无法弄清楚这个多元素的事情。

感谢您提供的任何帮助,我是 Javascript 和 Jquery 世界的新手。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    把你的代码改成

    var thelinks = $("td a").map(function(){
        return $(this).attr("href");});
    
    document.write(thelinks);
    

    您正试图在定义它的匿名函数中打印出“thelinks”的内容。

    【讨论】:

      【解决方案2】:

      您的代码没有意义;首先,each 没有有用的返回值(您需要 map 代替),其次,您正在打印 thelinks,然后再为其分配任何值。

      可能你想要这样的东西:

      var thelinks = $("td a").map(function () {
        return $(this).attr("href");
      }).get();
      
      // Just for example purposes
      document.write( thelinks.join(", ") );
      

      【讨论】:

        【解决方案3】:

        你可以把它简化成这样,你有一些额外的代码并且你的变量没有正确定义:

        $("td a").each(function(){
            document.write($(this).attr("href"));
        });
        

        【讨论】:

          【解决方案4】:

          $("td a").map(function() { return this.href })

          【讨论】:

            猜你喜欢
            • 2012-01-18
            • 1970-01-01
            • 1970-01-01
            • 2020-09-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多