5

xmlタグ属性フィールドからの2つの16進値を比較する必要があります。これを試しています:

var fill = $(this).attr( "fill" );
// console.log( fill.toString(16) );
if ( fill === "#FF00FF" )

しかし、アイデアは機能していませんか?

4

3 に答える 3

2

そこで2つの等号を使用する必要があると思います。これを試してください...

var fill = $(this).attr( "fill" );
if ( fill == "#FF00FF" )

それが機能しない場合は、おそらく$(this)を識別していません

于 2012-05-12T07:52:48.000 に答える
2

attr文字列を返します。それを呼び出す必要はありません( 'sは引数を取らないため、引数toStringは無視されます)。StringtoString

あなたのコードはいくつかのことを想定しています:

  1. 属性が#hex形式で返されること(カラー値の場合、これは確実に真のクロスブラウザーではありません)。

  2. それはすべて大文字になります。

値をログに記録したときに何が表示されるかわからないので、2番目の部分について説明します。

var fill = $(this).attr( "fill" );
if ( fill.toUpperCase() === "#FF00FF" )
于 2012-05-12T07:59:49.457 に答える
0

塗りつぶしがカラーの場合、RGB形式で返される場合があります。そして、あなたがそれを記録するとき、あなたは書くtoString()。RGB値と比較するか、文字列と比較します。fill.toString(16)

于 2012-05-12T07:55:12.793 に答える