我发现.attr()仅适用于页面上第一个匹配的元素!所以,我一直在尝试从页面上的所有匹配元素中获取href,但无济于事。
以下是我暂时写的内容:
var thelinks = $("td a").each(function(){
$(this).attr("href");
document.write(thelinks);
});
我使用document.write只是为了看看发生了什么,我得到了一个很长的“undefinedundefinedundefined”列表
我要做的是从每个td a中提取href,然后使用ajax访问这些页面并执行其他操作。当它处理一个链接时我可以正常工作,但这个多元素是我无法弄清楚的。
感谢任何帮助,我是Javascript和Jquery世界的新手。
答案 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})