使用jquery或javascript从html文件检索所有超链接

使用jquery或javascript从html文件检索所有超链接,javascript,jquery,Javascript,Jquery,我需要使用jquery检索当前html页面中的所有超链接。如何使用正则表达式来实现这一点?我还可以使用javascript中的集合来存储列表中的所有HREF吗?使用jQuery$('a')将为您完成这项工作 遍历所有锚元素 var hrefArr = []; $('a').each(function(){ //hrefArr.push($(this).attr('href')); hrefArr.push(this.href); // this would be bit faster

我需要使用jquery检索当前html页面中的所有超链接。如何使用正则表达式来实现这一点?我还可以使用javascript中的集合来存储列表中的所有HREF吗?

使用jQuery
$('a')
将为您完成这项工作

遍历所有锚元素

var hrefArr = [];
$('a').each(function(){
  //hrefArr.push($(this).attr('href')); 
  hrefArr.push(this.href); // this would be bit faster then the statement above it
});
按OP编辑注释,在字符串中查找包含html的锚标记

str = "<div><a href='local1'></a><a href='local2'></a></div>"
var hrefArr = [];
$(str).filter('a').each(function(){
    hrefArr.push(this.href); 
});​
str=“”
var hrefar=[];
$(str).filter('a')。每个(函数(){
hrefar.push(this.href);
});​

所有的锚都很容易

$("a").each(function(){
  alert( $(this).attr("href") );
})

您可以使用简单的每个循环:

// For each <a href=""> tag...
$('a').each(function(){
    // Get the url
    var href = $(this).attr('href')
    // alert it or do sth with it
    alert( href ); 
})
//对于每个标记。。。
$('a')。每个(函数(){
//获取url
var href=$(this.attr('href'))
//提醒它或用它做某事
警报(href);
})

这将为您提供页面上的所有超链接

$('a')
这将为您提供HPyerLink上的HREF集合

var hrefs = new Array();
$('a').each(function() {
    hrefs.push(this.attr('href'));
});
如果“javascript中的集合”是指数组,则可以执行以下操作:

var hrefs = [];
$("a").each(function() {
    hrefs.push(this.href);
});
// hrefs array now contains all the hrefs
.each()
回调函数中
此.href
可能会返回完整的url,如果您单击该链接,该url将随后返回,即
href=“test.htm”
将作为
http://yourdomain/test.htm
。如果只需要属性中的位,请使用
$(this.attr(“href”)

您不会使用正则表达式进行这种类型的处理。

尝试以下方法:

var link = "";
$("a").each(function() {
    link += $(this).attr("href"); 
});
alert(link);

第二个示例将返回第一个锚标记的
href
属性,而不是集合。我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它吗?我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它吗?您可以将html字符串传递给什么?我对yql不是很熟悉,但如果你用的是yql,为什么不在问题中这样说呢?您要求提供jQuery解决方案。如果我们假设您的yql将html返回到字符串
str
,那么您可以执行
$(str).filter(“a”)。每个(…
我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它吗?我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它吗?替换$('a')与$(str).find('a')其中str包含文本可能希望使用
.filter()
而不是
.find()
,因为
.find()
与字符串中的任何顶级元素都不匹配。(您的示例字符串当然可以与
.find()
一起使用,因为您假定div是一个容器。)感谢@nnnnnn您的建议,改为filter。我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它吗?使用
$(此处为html字符串)。查找('a')。每个(…
可能希望使用
.filter()
而不是
.find()
因为
.find()
不会匹配任何顶级元素。我使用yql检索链接的html,但我需要从yql返回的结果中获取href。我可以将html字符串传递给它而不是this.href吗?我不确定将所有href连接在一起而不使用任何空格或逗号是否会有帮助。