0

クラスの割り当てとtdの非表示と表示で問題が発生しています。ここに私のHTMLがあります:

<table id="fundTable">
    <tr> 
         <td class="rentability"> <span class="someClass"> 0.12 </span> </td>
         <td class="absoluteResult">0.66</td>
    </tr>
    <tr> 
         <td class="rentability"> <span class="someClass"> -0.24  </span> </td>
         <td class="absoluteResult">-.45</td>
    </tr>
</table>

これが私のJavascript(onchange)です:

$('#fundTable tr').each(function() {
    formatedAbsoluteResult = 'SOME NUMBER'
    $(this).find('td[class=absoluteResult]').fadeOut(100).html(formatedAbsoluteResult).fadeIn(100)
    if (formatedAbsoluteResult < 0)
        $(this).find('td[class=absoluteResult]').removeClass('green').addClass('red')
    else 
        $(this).find('td[class=absoluteResult]').removeClass('red').addClass('green')
}

アイデアは、適切なクラスを割り当てることにより、数値が正の場合に緑色で表示することです。それ以外は赤。このコードは、ページの読み込み時に一度実行すると完全に機能します。次に、td割り当てられたクラス ( または のいずれredgreen) を持つ はもう更新されません (onchange) が、他のものはオンになっています。

$(this).find('td[class=absoluteResult]').fadeOut(100).html(formatedAbsoluteResult).fadeIn(100)

私はこの行動を理解していません。どんな助けでも大歓迎です。

4

1 に答える 1

1

このブロックの全体的なデザインを少し調整すると役立つと思います。

これは、あなたが達成しようとしていることを実行しているようです( jsFiddle のライブデモ)。私が即興で演奏した部分を変更することを忘れないでください:

    $("#testing").keyup(function() {
    $("#fundTable tr").each(function() {
       formattedAbsoluteResult = 
        $(this).find("td.absoluteResult").fadeOut(100, function () {
            if (formattedAbsoluteResult < 0)
            {
                $("#fundTable tr").find("td.absoluteResult").removeClass("green").addClass("red");
            }
            else
            {
                $("#fundTable tr").find("td.absoluteResult").removeClass("red").addClass("green");
            }
        }).html(formattedAbsoluteResult).fadeIn(100);
    });
});

「onchange」の代わりに「keyup」が使用されているコールバック関数に注意してください。ただし、必要なものは何でも使用できます。お役に立てれば。

于 2011-11-17T04:45:30.737 に答える