Javascript 选择一个元素,如果它有一个相邻的同级,也选择该元素

Javascript 选择一个元素,如果它有一个相邻的同级,也选择该元素,javascript,jquery,Javascript,Jquery,JSFIDLE 处理一个奇怪的问题。这可能不是最好的处理方法,但这是我知道的唯一方法 我正在与Bandsintown合作,这可能是一个需要定制的皇家难题。它正在发射大量的元素。我想把所有的元素A都包装在一个中,但是如果元素B在元素A下面,我想把它们都包装在一起 之前: 元素A 元素A 元素A 元素A 元素B 元素A 元素A 之后: -元素A- -元素A- -元素A- 元素A元素B- -元素A- -元素A- 所以我知道如何选择相邻的同级元素,但我不确定如何选择相邻的同级元素和原始元素 想法 当

JSFIDLE

处理一个奇怪的问题。这可能不是最好的处理方法,但这是我知道的唯一方法


我正在与Bandsintown合作,这可能是一个需要定制的皇家难题。它正在发射大量的元素。我想把所有的元素A都包装在一个
  • 中,但是如果元素B在元素A下面,我想把它们都包装在一起

    之前:

    元素A

    元素A

    元素A

    元素A

    元素B

    元素A

    元素A

    之后:

    -元素A-

    -元素A-

    -元素A-

    • 元素A元素B-
    -元素A-

    -元素A-

    所以我知道如何选择相邻的同级元素,但我不确定如何选择相邻的同级元素和原始元素

    想法

    当前代码如下所示,但您可以找到

    $("div:not('.bit-event-description') + .bit-event-description").wrap("<div class='col-md-4 col-sm-4'></div>");
    
    $(“div:not('.bit事件描述')+.bit事件描述”).wrap(“”);
    
    这是在使用下一个同级选择器时添加上一个元素的方式

    var el = $("tr:not('.bit-event-description') + .bit-event-description");
    el.add(el.prev()).wrap("<div class='col-md-4 col-sm-4'></div>");
    
    var el=$(“tr:not('.bit事件描述')+.bit事件描述”);
    el.add(el.prev()).wrap(“”);
    

    现在还不清楚这将如何包装元素A和B,因为没有标记或任何可能性来测试这一点?

    您确实应该为此设置一个提琴,但方法是缓存选择器并添加()prev()元素。看起来您正在关注无效的HTML标记“我想将它们包装在一起”是不是应该改成
    .wrapAll()
    ?@A.Wolff-我实际上正要使用wrapAll,但不确定,因为很难看出它是如何工作的,所以我写了答案中的最后一行,但是眼光很好!