Подтвердить что ты не робот

Как получить первый внутренний элемент?

Итак, я хочу получить первый тег 'a' в этом div. Это действительно сводит меня с ума. спасибо за любую помощь.

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

} 
4b9b3361

Ответ 1

Не-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 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/

Ответ 2

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

См. команду find jQuery.

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

Фактически я не понимаю проблему, поэтому я пытаюсь исправить вашу функцию, чтобы она понятна для вас:

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/

Ответ 3

$("#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>