Как получить первый внутренний элемент?
Итак, я хочу получить первый тег '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');
}
Ответы
Ответ 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>