Jquery:从页面上的多个链接中提取href

时间:2010-04-01 23:36:24

标签: jquery

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

以下是我暂时写的内容:

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

我使用document.write只是为了看看发生了什么,我得到了一个很长的“undefinedundefinedundefined”列表

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

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

4 个答案:

答案 0 :(得分:3)

将您的代码更改为

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

document.write(thelinks);

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

答案 1 :(得分:2)

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

可能你想要这样的东西:

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

// Just for example purposes
document.write( thelinks.join(", ") );

答案 2 :(得分:1)

你可以简化这个,你有一些额外的代码,你的变量没有正确定义:

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

答案 3 :(得分:0)

$(“td a”)。map(function(){return this.href})