如何获得第一个内部元素?
所以我想在这个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');
}
非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:
$(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
,你在找什么?
是的,我已经试过了,但它仍然无法正常工作。我不想做第二个,因为它不够动态。 – JamesTBennett 2010-08-03 08:31:42
您可以安装Chrome,Firefox或Safari浏览器通过控制台输出对象。之后它会更清晰。 PS:在Chrome中,它的Ctrl + I – ajile 2010-08-03 08:47:32
$("#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>
是的,我试过这个。没爱。我想要做的是将链接的display属性从none设置为inline。所以我正在做你对.attr()所附带的东西。 – JamesTBennett 2010-08-03 08:37:03
function load(dl) var element = $(dl).find('a:first')。attr('display','inline'); } – JamesTBennett 2010-08-03 08:37:35
@creocare:请参阅我更新的答案。前一个也应该可以工作,但也许你没有在全局范围内定义'load'。始终查看浏览器的控制台以检查错误。 – 2010-08-03 08:50:03