[英]How to add class to a specific siblings of element using jquery?
I want to find if an element has class lesson_read
then add a class found
to .course_section
that comes just above it. 我想查找某个元素是否具有class
lesson_read
然后将found
的类添加.course_section
上方的.course_section
中。 but don't add class to .course_section
which comes below it. 但不要将类添加到其下面的
.course_section
中。 here is the html 这是HTML
<table class="table">
<tbody>
<tr class="course_section "><!-- this should have class "found" -->
<td colspan="4">Introduction to AEM</td>
</tr>
<tr class="course_lesson lesson_read">
<td class="curriculum-icon"><i class="icon-play"></i></td>
<td><a href="#">Introduction to AEM</a></td>
<td> </td>
<td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td>
</tr>
<tr class="course_lesson lesson_read">
<td class="curriculum-icon"><i class="icon-play"></i></td>
<td><a href="#">Installing AEM</a></td>
<td> </td>
<td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td>
</tr>
<tr class="course_lesson">
<td class="curriculum-icon"><i class="icon-task"></i></td>
<td>AEM Installation Quiz</td>
<td> </td>
<td><span class="time"><i class="fa fa-clock-o"></i> Unlimited</span></td>
</tr>
<tr class="course_section">
<td colspan="4">AEM Environment</td>
</tr>
<tr class="course_lesson">
<td class="curriculum-icon"><i class="icon-text-document"></i></td>
<td>AEM Instances</td>
<td> </td>
<td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td>
</tr>
<tr class="course_lesson">
<td class="curriculum-icon"><i class="icon-play"></i></td>
<td>Developer Tools</td>
<td> </td>
<td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td>
</tr>
</tbody>
</table>
I have tried this 我已经试过了
jQuery('.course_section').each(function() {
var c='';
jQuery(this).siblings().each(function() {
if(jQuery(this).hasClass('lesson_read')){
c='found';
}
});
if(c=='found'){
jQuery(this).addClass(c);
}
});
However this adds class found
to every course section. 但是,这会将
found
课程添加到每个课程部分。
You need to use .prev()
that select preceding sibling of element. 您需要使用
.prev()
选择元素的先前同级。
$(".lesson_read").prev(".course_section").addClass("found");
$(".lesson_read").prev(".course_section").addClass("found");
.found {color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table class="table"> <tbody> <tr class="course_section"><!-- this should have class "found" --> <td colspan="4">Introduction to AEM</td> </tr> <tr class="course_lesson lesson_read"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td><a href="#">Introduction to AEM</a></td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson lesson_read"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td><a href="#">Installing AEM</a></td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-task"></i></td> <td>AEM Installation Quiz</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> Unlimited</span></td> </tr> <tr class="course_section"> <td colspan="4">AEM Environment</td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-text-document"></i></td> <td>AEM Instances</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td>Developer Tools</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> </tbody></table>
You have to use prevAll() to get all previous siblings which have class course_section then have to use .last() to get last previous siblings(course_section) of lesson_read class 您必须使用prevAll()来获取所有具有course_section类的先前兄弟姐妹,然后必须使用.last()来获取lesson_read类的上一个先前兄弟姐妹(course_section)
$('.lesson_read').prevAll('.course_section').last().addClass('found');
.found{ color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table class="table"> <tbody> <tr class="course_section "><!-- this should have class "found" --> <td colspan="4">Introduction to AEM</td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td><a href="#">Introduction to AEM</a></td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson lesson_read"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td><a href="#">Installing AEM</a></td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-task"></i></td> <td>AEM Installation Quiz</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> Unlimited</span></td> </tr> <tr class="course_section"> <td colspan="4">AEM Environment</td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-text-document"></i></td> <td>AEM Instances</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> <tr class="course_lesson"> <td class="curriculum-icon"><i class="icon-play"></i></td> <td>Developer Tools</td> <td> </td> <td><span class="time"><i class="fa fa-clock-o"></i> 00:00:00</span></td> </tr> </tbody> </table>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.