2010-08-03 53 views
19

所以我想在這個div中獲得第一個'a'標籤。這真的讓我瘋狂。謝謝你的幫助。如何獲得第一個內部元素?

<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'); 

} 

回答

31

非jQuery的:沒有標記與jQuery之前,所以我包括這)如果你想獲得

  • 第一個子元素:

    var element = document.getElementById('PGD').children[0]; 
    
  • 如果你想獲得第一錨元素:

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

使用jQuery:

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

,實際上你的函數可以只是

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

更新:

當你使用jQuery時,我建議不要在你的HTML標記中附加點擊處理程序。這樣做的jQuery的方式:

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

和你的HTML:

見自己:http://jsfiddle.net/GWgjB/

+0

是的,我試過這個。沒愛。我想要做的是將鏈接的display屬性從none設置爲inline。所以我正在做你對.attr()所附帶的東西。 – JamesTBennett 2010-08-03 08:37:03

+0

function load(dl) var element = $(dl).find('a:first')。attr('display','inline'); } – JamesTBennett 2010-08-03 08:37:35

+0

@creocare:請參閱我更新的答案。前一個也應該可以工作,但也許你沒有在全局範圍內定義'load'。始終查看瀏覽器的控制檯以檢查錯誤。 – 2010-08-03 08:50:03

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

參見find jQuery的命令。

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

Actualy我不理解的問題,所以我想你的正確功能,要清楚你:

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'); 

} 

我supose dl$('#PGD')。但子元素A還沒有屬性id,你在找什麼?

另請參見:http://api.jquery.com/category/selectors/

+0

是的,我已經試過了,但它仍然無法正常工作。我不想做第二個,因爲它不夠動態。 – JamesTBennett 2010-08-03 08:31:42

+0

您可以安裝Chrome,Firefox或Safari瀏覽器通過控制檯輸出對象。之後它會更清晰。 PS:在Chrome中,它的Ctrl + I – ajile 2010-08-03 08:47:32

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

這會給你的第一個孩子「一」的標籤,但沒有後代。例如。

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

會給你:<a href="hello">Hello</a>