我有一个像这样的表的固定结构:
<table>
<tr><td class="lvl-0">1</td><tr>
<tr><td class="lvl-1">2</td><tr>
<tr><td class="lvl-2">3</td><tr>
<tr><td class="lvl-2">4</td><tr>
<tr><td class="lvl-2">5</td><tr>
<tr><td class="lvl-1">6</td><tr>
<tr><td class="lvl-2">7</td><tr>
<tr><td class="lvl-2 selected">8</td><tr>
<tr><td class="lvl-2">9</td><tr>
</table>
我想选择每个 lvl parent 。 这意味着我想从所选中选择之前的每个 lvl。除了相似。这意味着在这个例子中它将是 6 和 1
我试过这个:
var ss = [];
for(var l = lvl; l <= 5; l++){
ss.push('td.lvl-'+l);
}
var ul = jQuery('table').find(ss.join(',')).closest('tr');
var pa = jQuery('.selected').closest('tr').prevAll('tr').not(ul);
但它也选择了数字 2
//编辑
我有一个 jsfiddle http://jsfiddle.net/g7yhwojg/3/选择应该是:
- 14
- 13
- 10
- 1
最佳答案
我自己弄的。
var lvls = [];
pa = pa.filter(function(){
var pc = jQuery(this).find('td').attr('class');
if(lvls.indexOf(pc) == -1){
console.log(pc);
lvls.push(pc);
return true;
}
return false;
});
http://jsfiddle.net/g7yhwojg/11/
我遍历了所有上层元素,每次只取第一个。
关于javascript - jQuery 选择直接 "parents",不相似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244358/