如果父元素li有class,将class附加到子元素
If parent li hasclass append class to child element
我试图添加一个名为"animated"的类到子div只有当父li有一个名为"current"的类。此外,我试图删除"动画"类,如果父li不显示"当前"类。
$(document).ready(function() {
if ($('ul.itemwrap li').hasClass('current')) {
$( "ul.itemwrap li" ).find( ".caption-text" ).addClass("animated");
}
else {
$( "ul.itemwrap li" ).find( ".caption-text" ).removeClass( "animated" );
}
});
问题* 代码可以工作,但是,它只是将类添加到所有子元素(. title -text)中,并且在整个carousel循环中添加和删除"current"类时不删除它们。
Html * <ul class="itemwrap">
<li class="current"> <img src="images/img1.jpg" alt="img-description">
<div class="caption">
<div class="caption-holder">
<div class="container">
<div class="caption-text">
<h1>title</h1>
</div>
</div>
</div>
</div>
</li>
<li> <img src="images/img2.jpg" alt="img-description">
<div class="caption">
<div class="caption-holder">
<div class="container">
<div class="caption-text">
<h1>Title</h1>
</div>
</div>
</div>
</div>
</li>
<li> <img src="images/img3.jpg" alt="img-description">
<div class="caption">
<div class="caption-holder ">
<div class="container">
<div class="caption-text">
<h1>Title></h1>
</div>
</div>
</div>
</div>
</li>
</ul>
您的代码的一个问题是,如果一个<li>
具有类'current'
,那么您将类动画添加到所有".caption-text"
元素,而不仅仅是那些低于'.current'
的项目。
你可以用几种方法修复你的代码。这样可以单独处理每个<li>
:
$(document).ready(function() {
$('ul.itemwrap li').each(function() {
var item = $(this);
var caption = item.find(".caption-text");
if (item.hasClass('current')) {
caption.addClass("animated");
} else {
caption.removeClass("animated");
}
});
});
这种方式使用选择器为您做更多的工作:
$(document).ready(function() {
// clear .animated from all captions
$('ul.itemwrap li .caption-text').removeClass("animated");
// put back the .animated under .current
$('ul.itemwrap li.current .caption-text').addClass("animated");
});
- 通过id和class属性获取元素
- $(.class).empty总是缺少一个元素
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery:具有class但不具有$(this)的元素
- 在所选元素的父元素上添加“ng-class”
- 使用类而不是 ID(通过 CLASS 而不是 ID 获取元素)
- “class”属性的值隐式扩展某些标记元素
- 元素必须单击两次才能添加Class(自定义指令)
- 将class属性设置为元素不适用于javascript和jquery
- 如何在AngularJS中使用ng-class仅在特定页面上向元素添加类
- 用于将 Class 添加到链接中指定的元素的动态代码
- Jquery 如何在不作为父级的情况下选择低于 id/class 的元素
- jQuery从许多具有相同.class的元素中更改单击元素的CSS背景
- 使用两个父级滚动到元素,一个具有id,另一个具有class
- 我创建了一个CSS切换器,但我只需要更改class=“”的元素;红色”;身体
- 如何在AngularJS上添加不同元素的Class和removeClass
- 如何选择具有class属性的元素(使用jQuery),该属性的值正好以给定字符串开头
- Javascript-不带ID或Class的get元素(按钮)
- 查找类为'的元素;x',忽略那些有class的'x'和另一类
- 当元素'class属性发生变化时是否会触发事件?