Jquery раскрашивает ячейки таблицы в соответствии с условиями и значениями

#javascript #html #jquery

Вопрос:

Попытка раскрасить строки таблицы, содержащие годыlt;= 2004, во втором столбце, а третий столбец должен иметь значение «Ne». То, что я получаю сейчас, — это цветные строки, которые содержат только значения в третьем столбце «Ne» и годы состояния Есть ли какой-то способ написать условие с помощью amp;amp;, или у меня плохой синтаксис?

 $(function(){  $("#randa").click(function(){  $("#lentele td:nth-child(2)").each(function()  {  if (parseInt($(this).text()) lt;=2005)  {    $("#lentele td:nth-child(3)").each(function()  {  if ($(this).text() == "Ne")  {  $(this).parent("tr").addClass('spalvinti');    }     }    )    }  })  })  

});

введите описание изображения здесь

Ответ №1:

Когда вы найдете подходящую ячейку с текстом Ne , она должна находиться в той же строке, что и соответствующая ячейка с годом. Код с проблемой заключается в нахождении всех ячеек с Ne вместо этого.

Я бы обрабатывал строку за строкой, как показано ниже:

 $("#randa").click(function(){  $("#lentele tr").each(function() {  if (parseInt($(this).children('td:nth-child(2)').text()) lt;= 2005  amp;amp; $(this).children('td:nth-child(3)').text() === 'Ne') {  $(this).addClass('spalvinti');  }  }); }); 
 table { border: 1px solid #eee; } tr.spalvinti { background-color: green; } 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div id="randa"gt;  lt;table id="lentele"gt;  lt;tbodygt;  lt;trgt;  lt;tdgt;1lt;/tdgt;lt;tdgt;2010lt;/tdgt;lt;tdgt;Taiplt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;2lt;/tdgt;lt;tdgt;1999lt;/tdgt;lt;tdgt;Nelt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;3lt;/tdgt;lt;tdgt;2001lt;/tdgt;lt;tdgt;Nelt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;4lt;/tdgt;lt;tdgt;2004lt;/tdgt;lt;tdgt;Nelt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;5lt;/tdgt;lt;tdgt;2008lt;/tdgt;lt;tdgt;Nelt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt; lt;/divgt;