在滚动包装div时,我需要不同的嵌套子进行不同的操作。
一个div需要淡化到一个不透明度,另一个div需要做另一件事。
这些都包含在我无法篡改的很多东西中。
我不知道如何给孩子打电话给孩子......我已经尝试了jQuery的每个frikkin组合,但它只是不想玩,因为它已经挂在了函数的'this'部分。
但如果我拿走'this',它会对文档中的所有实例执行操作。
<div class="vpMedia"><li><a href="http://site.com"><div class="vpArrow"><image src="http://site.com/image1"></div><div class="vpLeft">Title</div><div class="vpRight">
<div class="vpRightImg"><image src="http://site.com/image2"></div></div></a></li></div>
我到处寻找与在孩子身上找到孩子相关的问题或主题但是,实际上并没有什么。我没见过:
this.children(.foo).children(#bar)
或者可能走这条路?
this > .foo > #bar
因为它永远不会起作用,所以'this'需要 out 引号。如果我们不能使用em,那么解决方案是什么?
编辑 - 好的,这是一个非常新手的问题。对不起,希望能在某个地方为初学者提供帮助。谢谢你的耐心等待。
答案 0 :(得分:2)
尝试$(".foo>#bar", this)
或$(this).children('.foo').children('#bar')
?
另外,请记住合法ID在页面中应该是唯一的,因此该示例只能写成$('#bar')
...
答案 1 :(得分:2)
您需要.children('.vpLeft')
,而不是.children('vpLeft')
。您正在选择nodeName ==='vpLeft'。
$("div .vpMedia").mouseover(function() {
$(this).children("li").children("a").children(".vpLeft").animate({opacity: .3}, { duration: 100, queue: false });
}).mouseout(function() {
$(this).children("li").children("a").children(".vpLeft").animate({opacity: 1}, { duration: 100, queue: false });
})
你可以缩短它..
$("div .vpMedia").mouseover(function() {
$('>li>a>.vpLeft', this).animate({opacity: .3}, { duration: 100, queue: false });
}).mouseout(function() {
$('>li>a>.vpLeft', this).animate({opacity: 1}, { duration: 100, queue: false });
})
也是<img>
而不是<image>
答案 2 :(得分:1)
要给孩子的孩子打电话,你可以这样做:
$(this).children(".foo").children("#bar");
或者您可以使用与find
类似的children
,但scans the DOM recursively除外。
$(this).find("#bar");
答案 3 :(得分:0)
我相信$(this).find()将适用于此。
查看http://api.jquery.com/find/以获取有关查找的更多信息。