2011-09-12 60 views
0

我试图更改标记的hover函数中a标记的字体颜色。如何查找元素中的元素

我试图做这样的事情

$('li').mouseover(function() { 
    var a = $(this).(NEED TO FIND CORRESPONDING a TAG) 
    a.css('color', 'white'); 
}); 
+0

看看这个文档:http://api.jquery.com/category/selectors/ –

+0

可能的重复[如何选择一个元素在class里面“这个”在Jquery中)(http://stackoverflow.com/问题/ 4868599 /如何选择一个元素的类在这里在jQuery中) –

回答

2
$(this).find('a'); 

这将找到<li>元素中的<a>元素。

更妙的是:

$('li a').mouseover(function() { 
    var a = $(this); // this now refers to <a> 
    a.css('color', 'white'); 
}); 

使用明智的选择,你可以通过避免额外的函数调用节省时间。

更好的是,在父代<ul>标记中只使用鼠标悬停事件的单个事件侦听器。

$('ul').mouseover(function (e) { 
    var a = $(e.target); // e.target is the element which fired the event 
    a.css('color', 'white'); 
}); 

这将节省资源,因为你只使用一个单一的事件侦听器,而不是为每个<li>元素。

2

尝试:

var a = $(this).find("a"); 
1
$('li').mouseover(function() { 
    var a = $("a", this); 
    a.css('color', 'white'); 
}); 

第二个参数指定的上下文。因此,找到所有a其中是li

+0

是的这种方式工作正常。 谢谢 –

0

如果你的父母标签

<li>和您的孩子标签<div>

,那么你可以使用这个寻子标签的this背景:

$('li').mouseover(function() { 
    var innerElement=$(this).find("div"); 
    innerElement.css('color', 'white'); 
} 
+0

是的这种方式工作正常。 谢谢 –

+0

@Kasun ...如果工作正常,请接受答案.. –

1

您可以使用jQuery .find()查找元素