我确定答案存在于某个地方,但我对于要搜索的术语感到茫然。如果这是重复的话,请道歉。
在jQuery / JS中是否有一种简单的方法可以从以下HTML中选择“相交”的元素?
<div id="first">
<div id="source-AAA"/>
<div id="source-CCC"/>
<div id="source-EEE"/>
<div id="source-FFF"/>
</div>
<div id="second">
<div id="BBB"/>
<div id="CCC"/>
<div id="DDD"/>
<div id="FFF"/>
</div>
即。基于这两个ID位于#CCC
的事实,从#FFF
获取元素div#second
和#first
?
我想正确的答案是在服务器端进行交叉(这是可能的,但很痛苦,因为这两个数据集来自不同的组件),但我想我会检查以防有人知道在jQuery中做到这一点的巧妙方法?
答案 0 :(得分:2)
首先必须收集所有这些ID,然后相应地构建一个CSS选择器字符串:
var divsToSelect = [];
$('#first div').each(function(){
divsToSelect.push( $(this).attr('id').substr(-3) );
});
$('#' + divsToSelect.join(',#'));
答案 1 :(得分:1)
您可以使用过滤器 -
$("#second div").filter(function() {
return $("#first > div[id$=" + this.id + "]").length > 0
})
答案 2 :(得分:0)
为什么不是客户?
$('div#first > div').each(function(){
var fv = $(this).attr('id');
$('div#second > div').each(function(){
var sv = $('div').attr('id');
if (fv.indexOf(sv) > -1){
// do something
}
});
});
当然,我不是专家,而是一线。