如果最近的元素包含字符串

时间:2015-11-17 07:39:46

标签: javascript jquery html

我有一些固定的HTML,我需要根据类newgroup的元素将类设置为元素relatedheader。正如您在HTML中看到的那样,第一个元素有一个字符串 - Accessories。我想用类newgroup给出该元素下面的三个元素,以使该类基于该字符串。然后我希望下一组具有来自下一个relatedheader元素的类。

如何使用jQuery或vanilla JS执行此操作?我想第一步是将relatedheader元素作为父元素?

到目前为止我得到了什么:

$('.relatedheader').nextUntil('.relatedheader').addClass('selected');

如何让脚本动态地使用class releatedheader元素?

<div class="relatedheader">
    <span class="unfoldedlabel" colspan="6">
        <a>Accessories/</a>
    </span>
</div>
<div class="newgroup"></div>
<div class="newgroup"></div>
<div class="newgroup"></div>
<div class="relatedheader">
    <span class="unfoldedlabel" colspan="6">
        <a>computers/</a>
    </span>
</div>
<div class="newgroup"></div>
<div class="newgroup"></div>
<div class="newgroup"></div>

2 个答案:

答案 0 :(得分:1)

你走了:

$(document).ready(function(){   

    $(".unfoldedlabel a").each(function(){

        if($(this).text() != "")
        {
            $(this).closest(".relatedheader").nextUntil(".relatedheader").addClass($(this).text().replace("/",""));
        }
    });
});

链接到JSFIDDLE

答案 1 :(得分:0)

这是工作fiddle

$('.relatedheader').find('a').each(function() {
   $(this).parents('.relatedheader').nextUntil('div.relatedheader').addClass('selected');
});

在上面的示例中,我循环遍历a内的每个.relatedheader,然后将selected类添加到所有元素,直到下一个.relatedheader

注意:如果您只想根据.relatedheader a选择或某个事件将这些类添加到下一组元素,那么您可以将此功能绑定到该事件仅

希望这是你所需要的!