我的布局很简单...
<div class="container">
<div class="row" id="234">
<div class="left special">
This is left content
</div>
<div class="right">
This is right content
</div>
</div>
<div class="row" id="944">
<div class="left">
This is left content
</div>
<div class="right">
This is right content
</div>
</div>
<div class="row" id="332">
<div class="left">
This is left content
</div>
<div class="right special">
This is right content
</div>
</div>
</div>
我正在尝试使用jQuery只定位其中包含special
类的行ID。到目前为止我有这个
jQuery( ".row:has(.special)" ).addClass( "test" );
但是它没有添加test
类,我在哪里出错?
答案 0 :(得分:3)
您可以在此处简单地使用.has
方法,向所有元素中包含类special
的元素添加一个类:
$(".row").has(".special").addClass("test");
.test{color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="row" id="234">
<div class="left special">
This is left content special
</div>
<div class="right">
This is right content
</div>
</div>
<div class="row" id="944">
<div class="left">
This is left content
</div>
<div class="right">
This is right content
</div>
</div>
<div class="row" id="332">
<div class="left">
This is left content
</div>
<div class="right special">
This is right content special
</div>
</div>
</div>
答案 1 :(得分:2)
您总是可以向后退。
$('.special').closest('.row').addClass('test');
用特殊类查找元素,用row类找到它们最接近的父记录,然后将类放在它们上面。由于您是从孩子导航到父母,因此您知道该行有一个特殊的孩子。