如何获得第一个内在元素?

时间:2010-08-03 08:20:46

标签: javascript jquery

所以我想在这个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'); 

} 

3 个答案:

答案 0 :(得分:38)

非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:

<div id="PGD" class="album">
     <a class="dl" href="#">DOWNLOAD</a>
</div>

亲眼看看:http://jsfiddle.net/GWgjB/

答案 1 :(得分: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'); 

} 

我提到dl $('#PGD')。但是子元素A没有归因id,您想要找到什么?

另见:http://api.jquery.com/category/selectors/

答案 2 :(得分:0)

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

这将为您提供第一个孩子“a”标签,而不是后代。例如。

     <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>