1

我知道我可以写:

 $('.2020').css("padding", "20px");

但是我该怎么写:

 $('.a').children('img').children('.2020').css("padding", "20px");

 <div class"a">
 <img class="2020" src="img/swatch/2020.jpg" >
 <img class="2021" src="img/swatch/2021.jpg" >
 <img class="2022" src="img/swatch/2022.jpg" >
 </div>

http://jsfiddle.net/ssRYk/

4

2 回答 2

1

您的选择器$('.a').children('img').children('.2020')尝试查找具有 class的元素,该元素位于具有 class 的元素2020img的元素内a

前任

<div class="a">
    <img src="img/swatch/2020.jpg" >
        <span class="2020"></span>
    </img>
</div>

但是在您的情况下,该img元素具有 class 属性,因此您有两种选择,要么连接img.2020选择器,要么使用该集合中的类.children('img.2020')查找img元素.children('img')和过滤元素.filter('.2020')

如果你想保留相同的结构,那么你可以

$('.a').children('img').filter('.2021').css("padding", "5px");

演示:小提琴

于 2013-07-12T02:39:29.810 回答
0

您的小提琴和上面的代码都有错误,它=在您的class="a"

您是说查找所有具有 a 类的元素。而不是寻找那些是图像的孩子。现在查找具有类 2021 的孩子的图像。由于图像不能有孩子,该代码将永远不会返回任何内容。

您可以将两个子语句与一个选择器组合,而不是执行多个操作。

$('.a').children('img.2021').css("padding", "5px");

您也可以只在一个选择器中编写没有孩子的

$('.a > img.2021').css("padding", "5px");

另一种方法是过滤。

于 2013-07-12T02:38:44.423 回答