使用.find()和.attr()

时间:2012-11-24 23:58:18

标签: jquery

我想搜索JQuery搜索href s的后代。我在想我应该使用.find()方法,但收效甚微,因为我不确定是否将.attr()方法作为参数或后续方法传递。

var trialMethod = function($this) {
  //Ive tried along the lines of this
  $this.find(.attr('href'));
  //and this
  $this.find().attr('href');
}

我正在使用点击处理程序(这个处理程序专门附加到所有链接,无论它们是否由JS / JQ更新),并尝试查找所点击的href。因为我试图在没有JS的情况下最大化网站的功能,所以链接是静态的,然后通过JS / JQ替换。因此,当点击链接时,它可能位于<li><span>或其他任何位置。我试图保持约定不要声明第n个子元素或特定元素,而是搜索,因为DOM树可能会更改,因此查找href属性,我将检查是否单击了某个链接。 / p>

1 - 如何使用href.find()两种方法找到子元素的.attr()

2 - 我已经阅读了JQ API,但只是想要一点澄清; .find()方法¿必须?传递一个参数?如果是这种情况,那么我现在知道不要浪费时间尝试类似于我的第二次尝试......

2 个答案:

答案 0 :(得分:2)

你的意思是:

var allHrefs = $this.find("[href]").map(function() {
    return this.href;
}).get();

答案 1 :(得分:1)

要查找具有HREF属性的所有链接,只需使用:

$(document).find('a[href]');

可以对rel进行相同的操作,例如

$(document).find('a[rel]');