2013-01-05 29 views
6

Đây là FiddleLàm thế nào để tôi nhận được giá trị a href từ một liên kết bên trong danh sách li?

Tôi muốn nhận thuộc tính href, tôi sử dụng $(this).attr('href') nhưng không hoạt động!

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

'var href = $ (this) .find ('a') attr ('href'); .children' – adeneo

+0

'$ (this) ('a') attr ('href') '. Ngoài ra đánh máy tại 'altert (h)'; –

+0

'DIV' không phải là một con hợp lệ của' ', đánh dấu không hợp lệ – charlietfl

Trả lời

1

thử

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

thử này để thay thế

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

$(this) là đề cập đến phụ huynh li của liên kết. Bạn cần phải sử dụng

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

Đồng thời, vui lòng sửa lỗi html, không được nằm trong phần tử nội tuyến.

Trong trường hợp của bạn div không phải ở trong a

1

đây, $this được trỏ đến các <li> nhưng u cần href attr của <a> để tìm <a> bên <li> và nhận được attr href ...

thử điều này

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

Bạn cần thêm dấu ngoặc kép quanh 'a' để làm việc này :) –

+0

whoops .. thanks @BlakePlumb .. updated .. :) – bipen

+1

+1 câu trả lời tuyệt vời! –

1

Bạn muốn thuộc tính href từ a, nhưng $(this) trong ví dụ của bạn là dành cho li, đó là lý do tại sao nó không hoạt động.

Tại sao không đặt sự kiện nhấp vào số a thay thế?

Ví dụ:.. $('.atleta a').click(function(e) ...

Các vấn đề liên quan