我想找到每个“列”的最大元素数,并获取列className。因此,例如,在下表中,我将得到一个包含['class2', 'class3']
的数组,因为两个“列”都有最大数量的元素。感谢帮助。
答案 0 :(得分:1)
试试这个
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
答案 1 :(得分:0)
使用以下内容获取每列的编号:
var firstColItems = $('.class1').length;
var secondColItems = $('.class2').length;
var thirdColItems = $('.class3').length;
然后在firstColItems,secondColItems和thirdColItems之间找到最大值。
如果我理解你的要求......
答案 2 :(得分:0)
我使用了两个.each()来实现这一目标。我希望你喜欢它。 :)
$('table').find('tr').each(function(){
$(this).find('td').each(function(clNo){
$(this).addClass('clumn' + clNo);
});
})
答案 3 :(得分:0)
在不知道具体细节的情况下,很难给出具体的代码;但算法对于任何情况都是相同的:
创建一个类数组并获取它们的计数(假设第一行包含所有类):
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;
})
);
根据max:
过滤数组var arrMax = $.map(arr, function(o,i) {
if (o.count == maxCount) return o.class;
});
答案 4 :(得分:-1)
var array = new Array();
$('table tr').each(function() {
array.push($(this).children().last().attr('class'));
});