2010-08-03 26 views
19

Vì vậy, tôi muốn nhận thẻ 'a' đầu tiên trong div này. Điều này thực sự là lái xe cho tôi hạt. Cảm ơn vì bất kì sự giúp đỡ.Làm thế nào để có được yếu tố bên trong đầu tiên?

<div id="PGD" class="album" onmouseover="load(this)"> 
    <a class="dl" href="#">DOWNLOAD</a> 
</div> 

javascript

function load(dl) 
{ 

var ID = $(dl).attr('id'); 
var elemnt = $('ID:first').attr('id'); 

} 

Trả lời

31

Non-jQuery: (không được gắn thẻ với jQuery trước đây, vì vậy tôi bao gồm này)

  • Nếu bạn muốn nhận được chỉ phần tử con đầu tiên:

    var element = document.getElementById('PGD').children[0]; 
    
  • Nếu bạn muốn để có được những yếu tố neo đầu tiên:

    var element = document.getElementById('PGD').getElementsByTagName('a')[0]; 
    

Với jQuery:

var element = $('#PGD').find('a:first'); 
// or, to avoid jQuery's pseudo selecors: 
// var element = $('#PGD').find('a').first(); 

và thực sự chức năng của bạn chỉ có thể

function load(dl) 
{  
    var element = $(dl).find('a:first'); 
} 

Cập nhật:

Vì bạn đang sử dụng jQuery, tôi khuyên bạn không nên đính kèm trình xử lý nhấp chuột trong đánh dấu HTML của mình. Làm điều đó một cách jQuery:

$(function() { 
    $("#PGD").mouseover(function() { 
     $(this).find('a:first').attr('display','inline'); 
     alert($(this).find('a:first').attr('display')); 
    }); 
}); 

và HTML của bạn:

Xem cho chính mình: http://jsfiddle.net/GWgjB/

+0

vâng tôi đã thử cách này. không tình yêu. Những gì tôi đang cố gắng làm với điều này là thiết lập thuộc tính display của liên kết từ none thành inline. Vì vậy, tôi đã làm những gì bạn có về với .attr() kèm theo. – JamesTBennett

+0

tải chức năng (dl) { yếu tố var = $ (dl) .find ('a: first'). Attr ('display', 'inline'); } – JamesTBennett

+0

@creocare: Vui lòng xem câu trả lời cập nhật của tôi. Cái trước cũng nên làm việc, nhưng có lẽ bạn không định nghĩa 'tải' trong phạm vi toàn cục. Luôn có giao diện điều khiển của trình duyệt để kiểm tra lỗi. –

0
$(ID).find(':first') 

Xem find jQuery lệnh.

$('#PGD').find('a:first') 

Actualy Tôi đã không hiểu vấn đề, vì vậy tôi đang cố gắng đúng chức năng của mình, để làm cho nó rõ ràng cho bạn:

function load(dl) 
{ 

// var ID = $(dl).attr('id'); 
// var elemnt = $('ID:first').attr('id'); // Here is error-mast be like $(ID+':first') 

var ID = $(dl).attr('id'); 
var elemnt = $(ID).find('*:first').attr('id'); 

} 

Tôi giả sử dl đó là $('#PGD'). Nhưng phần tử con A không thuộc tính id, bạn đang cố tìm gì?

Ngoài Xem: http://api.jquery.com/category/selectors/

+0

Vâng tôi đã cố gắng đó, nhưng nó vẫn không hoạt động. Tôi không muốn làm điều thứ hai bởi vì nó không đủ năng động. – JamesTBennett

+0

Bạn có thể cài đặt chrome, firefox hoặc safari để xuất các đối tượng của mình thông qua bảng điều khiển. Sau đó nó sẽ rõ ràng hơn cho bạn. PS: Trong Chrome, đó là Ctrl + I – ajile

0
$("#PGD").children("a:first") 

này sẽ cung cấp cho bạn những đứa con đầu lòng "a" thẻ, nhưng không phải là hậu duệ. Ví dụ.

 <div id="log"> 
     <p><a href="foo">Foo</a></p> 
     <a href="hello">Hello</a> 
     <a href="how">Hello</a> 
    </div> 

sẽ cung cấp cho bạn: <a href="hello">Hello</a>

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