我有一个带有两个img
标签的div。点击div我想淡出第二个img而不是第一个。我有几个这个类的div,每个都有一个类imgcarddiv
的img标签。我试过了,但没有任何反应。
如何调整此代码?
<div id="card1" class="carddiv">
<img id="card1imgproxy" src="abc.gif"/>
<img id="card1img" class="imgcarddiv" src="acespades.png" style="display: none"/>
</div>
$(".carddiv").click(function() {
$("img", this).find(".imgcarddiv").fadeIn("slow");
});
答案 0 :(得分:1)
您可以更改为:
$(".carddiv").click(function() {
$(this).find(".imgcarddiv").fadeIn("slow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="card1" class="carddiv">
<img id="card1imgproxy" src="abc.gif" />
<img id="card1img" class="imgcarddiv" src="acespades.png" style="display: none" />
</div>
答案 1 :(得分:1)
您的jquery选择器错误,因为您要查找.carddiv
的子项,您只需要使用$(this).find()
$(".carddiv").click(function() {
$(this).find(".imgcarddiv").fadeIn("slow");
});
如果您担心具有相同.imgcarddiv
类的其他元素,并且只想选择可以使用的图像:
$(this).find("img.imgcarddiv").fadeIn("slow");
在仅选择img
元素
点击下面的代码段,点击图片1 fadeIn
img 2
$(".carddiv").click(function() {
$(this).find("img.imgcarddiv").fadeIn("slow");
});
img { width:30px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<div id="card1" class="carddiv">
<img id="card1imgproxy" src="http://www.andlil.com/wp-content/uploads/2013/04/R%C3%A8gle-1.png"/>
<img id="card1img" class="imgcarddiv" src="http://tomreynolds.com/wp/wp-content/uploads/2014/01/2-graphic.png" style="display: none"/>
</div>
答案 2 :(得分:1)
$("img", this)
是$(selector, context)
语法,其作用类似于$(context).find(selector)
。它返回所有img
个后代。由于img
无法生成img
子项,find
查询将失败:
$(this).find('img')
.find(".imgcarddiv") // returns an empty collection
.fadeIn("slow"); // doesn't do anything
您应该使用filter
方法过滤集合(具有特定className的图像):
$("img", this).filter(".imgcarddiv").fadeIn("slow");
或删除find
来电并使用:
$("img.imgcarddiv", this).fadeIn("slow");
答案 3 :(得分:0)
确定。这就是我理解您编写的代码的方式。
$(".carddiv").click(function() {
// on click of carddiv div tag
$("img", this).find(".imgcarddiv").fadeIn("slow");
// fade in the second div
});
我不喜欢这是怎么写的。我的第一个想法是第一张图像仍然在第二张图像的顶部。我建议进行以下更改(请注意,我更喜欢引用id而不是Jquery选择器中的类)。
$("#card1").click(function() {
$('#card1img').fadeIn("slow");
$('#card1imgproxy').fadeOut('slow');
});