需要jquery选择器

时间:2011-02-08 11:31:51

标签: jquery jquery-selectors

我有以下标记:

<div class="thumb">
   <img src="thumb.jpg"/>
   <p>Some text here</p>
</div>

基本上我需要一个选择器,以便当拇指div id悬停在我身上时,我可以为孩子设置动画p。

我试过这个:

$('.thumb').hover(function() {
    $(this > "p")animate({ "top":"35px" });
}, function() {
    $(this > "p").animate({ "top":"115px" });
});

由于某种原因不起作用。

由于

5 个答案:

答案 0 :(得分:4)

this是一个对象,而不是一个字符串,所以你不能把它放到选择器中。您想要使用.find()方法:

$(this).find("p").animate({"top": "35px"});

哪个对应于选择器".thumb p"。要获得与".thumb > p"相同的行为,您可以使用.children("p")代替.find("p"),但这里的差异并不大。

.之前制作错字符号(例如遗失animate)也非常重要;)

答案 1 :(得分:2)

更改为:

$('>p', this).animate({....

这个构造提取'this'中的第一级P元素,这是你想要做的。您不需要使用find()或children()等...来获得P标记的第一级子级。我认为这种结构更简单,更直观。

P.S。你也有'。'在你的第一个'animate'之前失踪;

答案 2 :(得分:1)

也许:

$('.thumb').hover(function() {
    $(this).find('p').animate({ "top":"35px" });
}, function() {
    $(this).find('p').animate({ "top":"115px" });
});

答案 3 :(得分:1)

您可以使用.children()选择<p>代码 - http://api.jquery.com/children/

$(this).children('p').animate(...);

答案 4 :(得分:0)

这不起作用:

$(this > "p")

试试这个:

$(this).find('p')