jQuery将类添加到包含具有类元素的div中

时间:2018-08-19 17:59:36

标签: javascript jquery

我的布局很简单...

<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类,我在哪里出错?

2 个答案:

答案 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类找到它们最接近的父记录,然后将类放在它们上面。由于您是从孩子导航到父母,因此您知道该行有一个特殊的孩子。