我想找到每個「列」的元素的最大數量並獲取列的類名。因此,例如,在下面的表格中,我會得到一個包含['class2', 'class3']
的數組,因爲兩個「列」都具有最大數量的元素。幫助表示讚賞。謝謝。JQuery - 「列」類的最大數量類名
更新佈局: http://jsfiddle.net/2nbGe/5/
我想找到每個「列」的元素的最大數量並獲取列的類名。因此,例如,在下面的表格中,我會得到一個包含['class2', 'class3']
的數組,因爲兩個「列」都具有最大數量的元素。幫助表示讚賞。謝謝。JQuery - 「列」類的最大數量類名
更新佈局: http://jsfiddle.net/2nbGe/5/
使用以下獲取每列的數量:
var firstColItems = $('.class1').length;
var secondColItems = $('.class2').length;
var thirdColItems = $('.class3').length;
然後找到firstColItems,secondColItems和thirdColItems之間最大。
如果我明白你問什麼正確....
var array = new Array();
$('table tr').each(function() {
array.push($(this).children().last().attr('class'));
});
這不是隻是將'class3'添加到數組兩次?另外,不要使用'new Array()'只使用'[]' –
我喜歡使用'new Array()',你在說什麼?他想要最後一個類的數組,這就是這個解決方案的用途嗎? – Phil
這不是他想要的。他希望具有最多元素的列的類。 –
試試這個
var classes = {};
$("table td").each(function(){
if(!classes[$this.attr("class")]){
classes[$this.attr("class")] = 1;
}
else{
classes[$this.attr("class")] = classes[$this.attr("class")]+1;
}
})
//classes object will contain the each class and its count
@JKuschel - 它對你有幫助嗎? – ShankarSangoli
我用了兩個。每()來實現這一目標。我希望你喜歡它。 :)
$('table').find('tr').each(function(){
$(this).find('td').each(function(clNo){
$(this).addClass('clumn' + clNo);
});
})
@JKuschel,你試過這個嗎? – Mohsen
不知道具體情況,很難給具體代碼;但該方法對任何方案的相同:
創建類的數組,並得到他們的計數(這個假定第一行中的所有類):
var arr = new Array();
$('tr:first td')
.each(function(i, o) {
var c = $(o).attr('class');
arr.push({
class : c,
count : $('.' + c).length
});
});
獲取最大計數:
var maxCount = Math.max.apply(Math,
$.map(arr, function(o,i) {
return o.count;
})
);
濾波器基於最大陣列:
var arrMax = $.map(arr, function(o,i) {
if (o.count == maxCount) return o.class;
});
你可能想重新思考你的問題,我不認爲有人真的知道你在問什麼。 – Jack
我想通過檢查每個列上最多的元素來獲取一個類名的數組。所以再一次,如果col1有兩個元素,col [2-4]包含4個元素,那麼col [2-4]將在數組中。 – JKuschel
查看更新後的佈局的小提琴,你可以看到,最後一列有最多的「行」數,因此,數組也應該只包含「class3」 – JKuschel