我正在寻找解决我的问题的方法。情况如下。我有以下div
<div class="group">
<div class="A1_B1 symptom">Bla Bla Bla</div>
<div class="class1 symptom">Bla Bla Bla</div>
<div class="A1_B1 symptom">Foo Foo Foo</div>
<div class="A1_B3 symptom">Con Con Con</div>
<div class="A1_B1 symptom"><a href="#" class="connect">Click Me</a></div>
</div>
当我点击DIV class=“A1_B1”时,我必须在class=“A1_B1”后插入一些html,并满足以下条件:(i)不应在点击的DIV之后插入html。(ii)html不应插入在任何具有直接下一个class=“class 1”的DIV之后。
基于给定的条件,html应该像这样出现-
<div class="group">
<div class="A1_B1 symptom">Bla Bla Bla</div>
<div class="class1 symptom">Bla Bla Bla</div>
<div class="A1_B1 symptom">Foo Foo Foo</div>
<div class='class2'>Bar Bar Bar</div>
<div class="A1_B3 symptom">Con Con Con</div>
<div class="A1_B1 symptom"><a href="#" class="connect">Click Me</a></div>
</div>
……这是我写的,不起作用。谁能帮我解决这个问题。先谢谢你了。
$(document).on("click", ".connect", function (ev) {
var thisClass = $(this).parents('div.symptom').attr('class');
var html = "<div class='class2'>Bar Bar Bar</div>";
$(html).insertAfter("A1_B1":not("."+thisClass).next('div:not(.class1)'));
});
2条答案
按热度按时间h43kikqp1#
你可以使用
.each
循环来遍历你的symptom
div。然后,在这个循环中检查下一个div是否没有类class1
,然后在这个div后面添加你的html。演示代码:
laawzig22#
我不明白你想达到什么目的,但是为了匹配条件,你可以使用
insertBefore
。可以在锚元素的父元素之前插入。满足这两个条件。然而,我认为你应该提供更多的测试用例,以防这不是你正在寻找的。