2010-08-03 55 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>