JQuery Addclass não está funcionando no TableCell
Pergunta
Eu preciso de ajuda com isto
Estou tentando fazer isso
if(perc>0){
alert('change backgroundcolor and textcolor');
$('#stocktable tr td:last').addClass('stockhigher');
}
Mas não funciona em um recipiente de mesa
Eu também tento definir o seletor como este
$('#stocktable tr td:eq(2)).addClass...
$('#stocktable tr td.percentage').addClass...
nada!
Funciona na própria mesa ou em um table como
$('#stocktable tr')
Estou perdendo alguma coisa aqui?
Obrigado, Richard
Solução
Três coisas surgem à mente:
- Você está usando o
:last
Pseudo-elemento. Isso corresponderá ao máximo a um total de elementos, neste caso a última célula da tabela em "StockTable". Você talvez signifique:last-child
em vez de? - Você está usando
:eq(2)
que corresponderá ao terceiro elemento apenas em todo o conjunto. Você talvez signifique:nth-child(2)
? $("#stocktable tr td.eq(2)).addClass...
está ausente e a citação final; e- Não há nada de errado com o que você está fazendo. O que precisamente não está funcionando? Talvez não seja formatador que possa ser aplicado a uma célula de tabela.
Para explicar melhor (1) Imagine que você tem uma tabela com 3 linhas de 4 células com um ID de "mytable". Este código:
$("#mytable td:eq(2)").css("background", "yellow");
vai colorir o terceiro elemento da primeira linha (:eq()
é baseado em zero), enquanto:
$("#mytable td:nth-child(2)").css("background", "yellow");
vai colorir o segundo célula in cada fileira.
$("#mytable td:last").css("background", "yellow");
vai colorir a última célula na última fila, mas:
$("#mytable td:last-child").css("background", "yellow");
vai colorir a última célula em cada fileira.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow