jquery addClass не работает с tablecell
Вопрос
мне нужна помощь с этим
я пытаюсь это сделать
if(perc>0){
alert('change backgroundcolor and textcolor');
$('#stocktable tr td:last').addClass('stockhigher');
}
но это не работает на tablecell
Я также попробовал установить такой селектор
$('#stocktable tr td:eq(2)).addClass...
$('#stocktable tr td.percentage').addClass...
ничего!
он работает с самой таблицей или строкой таблицы, например
$('#stocktable tr')
я что-то упускаю здесь?
спасибо, Ричард
Решение
На ум приходят три вещи:
- Вы используете
:last
псевдоэлемент.Это будет соответствовать не более одному элементу, в данном случае самой последней ячейке таблицы в «stocktable».Вы, возможно, имеете в виду:last-child
вместо? - Вы используете
:eq(2)
который будет соответствовать третий только элемент во всем наборе.Вы, возможно, имеете в виду:nth-child(2)
? $("#stocktable tr td.eq(2)).addClass...
отсутствует и заканчивается цитата;и- В том, что вы делаете, нет ничего плохого.Что именно не работает?Возможно, к ячейке таблицы можно применить не форматирование.
Для дальнейшего объяснения (1) представьте, что у вас есть таблица с 3 строками по 4 ячейки с идентификатором «mytable».Этот код:
$("#mytable td:eq(2)").css("background", "yellow");
раскрасит третий элемент первой строки (:eq()
отсчитывается от нуля), тогда как:
$("#mytable td:nth-child(2)").css("background", "yellow");
раскрасит второй ячейка в каждый ряд.
$("#mytable td:last").css("background", "yellow");
окрасит самую последнюю ячейку в самой последней строке, но:
$("#mytable td:last-child").css("background", "yellow");
раскрасит последнюю ячейку в каждый ряд.
Не связан с StackOverflow