我想要.addClass("someClass"
到<blockquote>
,如果它上面有<figure>
类hello
,就像这样:
<figure class="hello"> world </figure>
<blockquote> Lorem </blockquote>
因此,只有当<figure>
标记位于其正上方时,才会将某些标记与div分开。
这样的事情可能吗?
答案 0 :(得分:5)
假设这是<blockquote>
元素的样式,当它紧跟<figure>
之后,那么你可以简单地使用CSS:
figure + blockquote {
border-color: red; /* or whatever */
}
section {
border: 1px solid #000;
margin: 0 0 1em 0;
}
blockquote {
border: 1px solid #000;
}
figure + blockquote {
border-color: #f00;
}
<section>
<figure>This is a figure</figure>
<blockquote>And this is an immediately-following blockquote.</blockquote>
</section>
<section>
<blockquote>This is a blockquote.</blockquote>
<figure>And this is a figure following a blockquote</figure>
</section>
<section>
<figure>Another figure</figure>
<div>a div</div>
<blockquote>And this is a blockquote.</blockquote>
</section>
参考文献:
答案 1 :(得分:4)
$('figure.hello + blockquote').addClass('someClass');
来自jQuery的文档:
选择立即匹配“next”的所有下一个元素 之前是兄弟姐妹“prev”。
答案 2 :(得分:3)
可以从已知类中工作......最简单
function union(left,right){
var list = [], screen = {};
for(var i = 0; i < left.length; i++){
if(!screen[left[i]])list.push(i);
screen[left[i]] = 1;
}
for(var i = 0; i < right.length; i++){
if(!screen[right[i]])list.push(i);
screen[right[i]] = 1;
}
return Immutable.List(list);
}
它的工作方式是,如果找不到任何一个选择器,那么什么都不会发生,并且仅适用于以下兄弟是一个阻碍的图形