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

Foi útil?

Solução

Três coisas surgem à mente:

  1. 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?
  2. Você está usando :eq(2) que corresponderá ao terceiro elemento apenas em todo o conjunto. Você talvez signifique :nth-child(2)?
  3. $("#stocktable tr td.eq(2)).addClass... está ausente e a citação final; e
  4. 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
scroll top