#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;