3

なぜこれがうまくいかないのですか?

ブラウザ=サファリ

<p style="color:blue;">foo</p>

if ($("p").css(("color") === "blue")) {
        alert(1);
}

ありがとうございました

4

4 に答える 4

8

構文と括弧がすべてです。

if ($("p").css("color") === "blue") {
        alert(1);
}
于 2013-02-20T09:28:24.083 に答える
4

最初は、ブラケットの配置が間違っています。次のように、CSS プロパティ「color」の値を取得.css("color")し、値と等しいかどうかをテストする必要があります。

if ($('p').css('color') === 'blue') {
    alert('color is blue');
}

ただし、一部のブラウザーはrgb代わりに「青」と一致しない値を返します。たとえば、Chrome と Firefox は を返すrgb(0, 0, 255)ため$('p').css('color')、rgb (または 16 進数 - '#0000ff') 値に対してもテストする必要がある場合があります。すべての値は論理的には同じですが、テキスト的には同じではありません。

var color = $('p').css('color')
if (color === 'blue' || color === 'rgb(0, 0, 255)' || color === '#0000ff') {
    alert('color is blue');
}

さらに、if 条件はおそらく色のケースを考慮に入れる必要があります。「BLUE」または「#0000FF」も有効です。

于 2013-02-20T09:30:01.060 に答える
0

私はそれがあるべきだと思います:if ($("p").css("color") === "blue"){ alert(1); }

于 2013-02-20T09:29:13.640 に答える
0

少なくとも Firefox と Chrome では

$("p").css("color") 

rgb(0,0,255) を返すので、とにかく条件は真ではありません。だから多分そのような回避策:

if ($("p").attr("style").contains('color:blue;')) {
    alert(1);
}
于 2013-02-20T09:37:20.023 に答える