如何比较两个十六进制值?

时间:2012-05-12 07:44:35

标签: javascript

我需要比较来自xml标记属性字段的两个十六进制值,我正在尝试这个:

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

但是没有任何想法吗?

3 个答案:

答案 0 :(得分:2)

我认为你必须在那里使用2个等号,试试这个......

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

如果这不起作用,那么你可能不会识别$(this)

答案 1 :(得分:2)

attr返回一个字符串,不需要在其上调用toString(并且该参数将被忽略,因为String的{​​{1}}不会参数)。

您的代码假设了以下几点:

  1. 该属性以#hex形式返回(如果它是一个颜色值,这在跨浏览器中是不可靠的。)

  2. 它将全部为大写。

  3. 在记录值时不知道你看到了什么,我将只讨论第二部分:

    toString

答案 2 :(得分:0)

如果fill是一种颜色,那么它可能会以RGB格式返回。当你记录它时,你写toString()。将其与RGB值进行比较,或将其与字符串fill.toString(16)

进行比较
相关问题