2008-12-11 43 views
14

Tôi đã có danh sách các liên kết có sự kiện nhấp được đính kèm với chúng, tôi cần lấy ID từ liên kết con A. Vì vậy, trong ví dụ dưới đây nếu tôi nhấp vào phần tử danh sách đầu tiên tôi cần google retuned.jQuery con của phần tử được nhấp

Tôi đã thử '$this a' nhưng hoàn toàn không thể thực hiện cú pháp.

jQuery: 

$("ul li").click(function(event){ 
$("input").val($(this).html());   
    } 
); 



html: 
<ul> 
    <li><a href="http://www.google.com" id="google">Google</a> 
</ul> 

Trả lời

40

Tôi không thấy mã HTML mẫu nhưng

$(this).find('a:first').attr('id') 

sẽ làm điều đó (sửa chữa a: chọn đầu tiên nếu nó không phải là những gì bạn có nghĩa là)

này tham khảo yếu tố đã kích hoạt sự kiện của bạn

+0

Tôi chỉ mù :) – smoothdeveloper

+0

Cảm ơn bạn vui lòng :) – Tom

+0

Yep, điều này chắc chắn là nó. –

1

Bạn có thể sử dụng phương thức children:

$(this).children('a').eq(0).attr('id'); 

Tôi không chắc chắn về cú pháp, nhưng một cái gì đó như thế này sẽ hoạt động.

+0

bằng cách sử dụng bộ chỉ mục mảng cung cấp cho bạn một đối tượng dom trở lại do đó phương pháp .attr sẽ không tồn tại và lỗi. U cần $ (this) .children ('a') [0] .id hoặc $ (this) .children ('a'). Get (0) .id hoặc $ (this) .children ('a'). attr ('id'); – redsquare

+0

Bạn có chắc là nó trả về một đối tượng DOM không? Dù bằng cách nào, tôi nói tôi không chắc chắn, tôi sẽ kiểm tra nó đôi khi và sửa nó nếu nó sai. – mbillard

+0

Tôi đã sửa nó bằng cách sử dụng '.eq (int)' trả về phần tử jQuery tại chỉ mục đã chỉ định. – mbillard

4

Để làm cho mã của bạn một gọn gàng chút, cho phép ràng buộc gây ra với các chức năng như vậy: (tôi đề nghị bạn cung cấp cho UL ID của bạn để nó là cụ thể để chỉ các yếu tố trong đó UL)

$('ul li').bind('click', getAnchorId); 

Chức năng được gọi là (getAnchorId) lấy thuộc tính ID của phần tử con (a) của phần tử được nhấp (ul li) và áp dụng nó cho một biến (anchorId) và để hiển thị thông tin chính xác của nó, tôi đặt kết quả trong một cảnh báo .

function getAnchorId() { 
    var anchorId = $(this).children('a').attr('id'); 
    alert(anchorId); 
} 

Bây giờ u có thể làm những gì bao giờ u muốn với biến mà :)

hy vọng điều này giúp :)

+0

Đó là rất chủ quan, cá nhân tôi thích sử dụng một chức năng vô danh, đặc biệt là kể từ khi điều này là rất cụ thể. –

+0

đã đồng ý và việc sử dụng liên kết chỉ là nỗ lực nhấn phím bổ sung thay vì sử dụng .click. – redsquare

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