2013-01-05 47 views
6

这里是一个Fiddle如何从li列表中的链接获取href值?

我想要得到的href属性,我用$(this).attr('href'),但它不工作!

HTML

<div class="wrap_atletas_interno"> 
    <ul> 
     <li class="atleta"> 
      <a href="teste.html"> 
       <div class="nome_86_atleta">Antônio</div> 
       <img src="atletas/antonio_86px.jpg" /> 
      </a> 
     </li> 
     <li class="atleta"> 
      <div class="nome_86_atleta">Cauê</div> 
      <img src="atletas/caue_86px.jpg" /> 
     </li> 
     <li class="atleta"> 
      <div class="nome_86_atleta">Dudu</div> 
      <img src="atletas/dudu_86px.jpg" /> 
     </li> 
    </ul> 
</div> 

的JavaScript

$('.atleta').click(function (e) { 
    e.preventDefault(); 
    $('.atleta').removeClass('atleta_atual'); 
    $(this).addClass('atleta_atual'); 
    var h = $(this).attr('href'); 
    alert(h); 
    $.get(h, function (data) { 
     //$(".detalhes_atleta").html(data).fadeIn("slow"); 
     alert(h); 
    }); 
}); 
+0

'变种HREF = $(本).find( 'a')的ATTR( 'href' 属性);'' – adeneo

+0

$(本)。儿童( 'a')的ATTR( 'href' 属性)'。还有'altert(h)'的错字。 –

回答

1

尝试

var h = $('a', this).attr('href'); 
1

试试这个,而不是

 var href= $('a',this).length>0? $('a',this).attr('href') : ''; 
2

$(this)指的是该链接的父li。您需要使用

$(this).find('a').attr('href'); 

此外请修复您的html,块元素不应位于内联元素内。

在你的情况div不应该在a

1

这里,$this是指向<li>但你需要href attr的<a>于是找到<a><li>并获得ATTR href ...

试试这个

$(this).find('a').attr('href'); 
+0

你需要在'a'周围加上引号才能工作:) –

+0

哎呦..谢谢@BlakePlumb ..更新.. :) – bipen

+1

+1很好的答案! –

1

你想要属性来自a,但$(this)在您的示例中是li,这就是为什么它不起作用。

为什么不在a上设置点击事件?

例:$('.atleta a').click(function(e) ...