jQuery获取子元素中的href

21
  alert($(this).children().next().html());

返回

  <a href="thelink.php?id=XXXX">click me...</a>

如何修改上面的语句以仅获取href?

尝试使用attr('href')但无法使其正常工作。

(是的,我是jq新手并且时间紧迫。)

//编辑 - 添加了代码:

<div class="row">
  <div class="date">
    <h2>27</h2>
    <h3>dec</h3>
  </div>
  <h2><a href="/wpb/index.php?id=4192#4199">the title..</a></h2>
  <p>the description...</p>
</div>

jq invoked by:
$("#threecol .row").click(function() {  
  alert($(this).children().next().href);
});

敬礼,


2
如果您发布相关的HTML代码,我们可以更好地帮助您。提供更多信息 => 获得更好的答案。 - Felix Kling
附注:不要使用<h*>元素进行样式设置。请使用CSS。标题元素具有独特的语义含义。 - Felix Kling
@Felix:他正在使用语义意义。 - SLaks
@SLaks:我不知道...这对我来说看起来很奇怪。标题但没有内容?日期和月份的重要性不同?日期与下面的链接处于同一级别? - Felix Kling
@SLaks,@Felix,头部用于日期/月份,以减少代码的使用(不使用span/div)。你有什么更好的建议? - Teson
显示剩余6条评论
3个回答

33
使用.attr('href')方法查找属性值。
编辑:在H2内的第一个锚点。
alert($(this).find('h2 a:first').attr('href'));

如果您喜欢,也可以通过类来引用它,并在锚点中使用该类。

alert($(this).find('.myLink').attr('href'));

11

$(this).children().next()返回一个包含有<a>标签的元素。
若要获取该<a>标签的href属性值,您需要选择它,然后调用.attr('href')

您可能想编写类似于以下代码:

alert($(this).find('a:first').attr('href'));
在你的情况下,你可能想要编写 .find('h2 a')

是的,它有效,谢谢!出于学习目的,我想知道如何遍历到它。请看添加的代码。 - Teson
@user:$(this).children('h2').children('a') - SLaks

-4
你可以尝试这个:

Edited: alert($(this).find("a").attr("href"));


3
html() 返回一个字符串,你不能在其上调用 attr() - Felix Kling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接