2012-04-20 2 views
1

Я создал простой пример того, чего я хочу достичь. http://jsfiddle.net/helpinspireme/ejHFf/ Что я хотел бы сделать, этоПрименение класса к первым 5 и последним 5 строкам

  • Подсчитайте количество таблицы <tr>
  • Если таблица имеет меньше чем 6, то все получают класс red
  • Если более 5, но менее 11, то первый 5 получите класс red, а остальные black
  • Если более 10, добавьте класс red в первые 5, а затем последние 5 добавить класс black в. Строки между первыми 5 и последними 5 не имеют класса.

Любая помощь будет оценена по достоинству. Спасибо.

ответ

1

Вы хотите

if (x < 6) { 
     $(tooltips_id).addClass('red'); 
    } else if (x > tooltips_amount-5) { 
     $(tooltips_id).addClass('black'); 
    } else { 
     // else 
    } 
+0

Perfect. Большое вам спасибо за вашу помощь! –

+1

@Help Inspire Me почему никто не понимает, как правильно давать ответы на вопросы? этому парню нужна галочка! – squarephoenix

+0

Переполнение стека заставляет меня ждать 8 минут, прежде чем проверять ответ, поэтому мне пришлось подождать. –

1

Что вы уже сделали? Вы в значительной степени описываете весь алгоритм. Просто используйте slice, чтобы получить элементы между индексами и length, чтобы получить количество элементов. Чтобы добавить класс, используйте addClass.

0

Это не совсем ответ на вопрос, как вы можете нуждаться в этом по таким причинам, как поддержка старых браузеров (это особенно заметно, что IE поддерживает только мое решение в версии 9). Хотя это может быть полезно не использовать это решение по той же самой причине, я действительно думаю, что важно отметить, что по более поздним стандартам вы можете это сделать даже без использования Javascript. Вы только CSS:

tr 
{ 
    border: 1px solid #000; 
} 

tr:nth-child(-n+5) 
{ 
    border: 1px solid red; 
} 


tr:nth-last-child(-n+5) 
{ 
    border: 1px solid red; 
} 
0

попробовать что-то вроде этого:

$("tr:lt(5)").css({ backgroundColor : "blue" }); 
$("tr:gt(5)").css({ backgroundColor : "red" }); 

Вот jsFiddle

0

скрипку для этого http://jsfiddle.net/9fmNG/

var rows = $('table tr'); 

rows.map(function(index, row){ 
    var allRows = rows.size(); 

    if(index+1 <= 5) 
     $(row).addClass('red'); 
    else if((index+1) >= (allRows-5)){ 
     $(row).addClass('black');  
    }    
})​ 
+0

Пожалуйста, напишите свой ответ * здесь *. В противном случае, если JS Fiddle упадет (снова ...), ваш ответ станет бесполезным. И нет никакой гарантии, что они не будут очищать или удалять старые страницы. Также: [ответ на мета-переполнение стека] (http://meta.stackexchange.com/a/8259/130770), относящийся только к ответам на ссылки. –

0
var tooltip = function() { 
    var tooltips_tr = $('#primary_table tr'); 
    var tooltips_amount = $(tooltips_tr).length; 

    tooltips_tr.each(function(i){ 
     i+=1; 
     if(tooltips_amount < 6) $(this).addClass('red'); 
     if(tooltips_amount > 5 && tooltips_amount < 11) 
     { 
      if(i<=5) $(this).addClass('red');  
      else $(this).addClass('black'); 
     } 
     if(tooltips_amount > 10) 
     { 
      if(i<=5) $(this).addClass('red');  
      else if(i>tooltips_amount-5) $(this).addClass('black'); 
     } 
    }); 
} 

Example.

Смежные вопросы