0

条件に基づいて負の値を赤に色付けしたいのですが、今は次のようにしています:

$('td.numeric:contains('-')").addClass("negative")

上記のコードは、クラス名が数値の td を検索し、値に「-」が含まれている場合、その td にクラス「負」を適用します。

私の問題は、数値クラスをたとえば日付値に適用すると、区切り文字として「-」も含まれ、日付が赤色になることです。

だから私の質問は、値が「-」で始まるtdを見つけるにはどうすればよいですか?

お気に入り

$('td.numeric:startwith('-')").addClass("negative")

CSS

.numeric {  text-align:right; }
.negative { text-align:right; color:red; }
4

3 に答える 3

1

あなたは使用することができますfilter()

$("td.numeric").filter(function() {
    return $.trim($(this).text()).indexOf("-") == 0;
}).addClass("negative")
于 2012-10-30T11:00:02.400 に答える
0

これを試して:

$("td").each(function() {
var text = $(this).text();
if (/[+-]?\d+(\.\d+)?/.test(text)) {
 var num = parseFloat(text);
 if (num < 0) {
   $(this).addClass("negative"); //add negative class
 } else if (num > 0) {
    $(this).addClass("positive"); //add positive class
 }

 }
 });
于 2012-10-30T11:01:55.687 に答える
0

次のように書きます。

$('td.numeric').filter(function(){return this.innerHTML[0] === '-';});

またはより安全:

$('td.numeric').filter(function(){return this.innerHTML.match(/^\s*-/;});

jqueryセレクター内に多くの関数を配置すると、パフォーマンスが低下するだけです。フィルターを使用することをお勧めします。

于 2012-10-30T11:14:21.180 に答える