2014-02-03 5 views
0

Когда в JavaScript вы не можете использовать, если statments используя цвет элемента как contition, например, есть следующие, если Постулаты возвращает ложь всегдаПочему нельзя использовать Javascript .style.color, если statments

document.getElementById('t').style.color = "rgb(0,0,255)" 

    alert(document.getElementById('t').style.color) 

    if(document.getElementById('t').style.color == rgb(0,0,255)) 
    { 
    alert("if") 
    } 

и предупреждение в строке 3 возвращает rgb (0,0,255), что означает, что браузер действительно использует rgb для цвета. но предупреждение («если») никогда не работает

может кто-нибудь помочь мне с тем, чтобы заставить это работать или найти альтернативный способ пометить кнопку (мне нужно сделать это для кнопки, а не переключателя), которая не является изменяя свой класс, например, меняя какую-то незначительную вещь, что javascript сможет проверить, что это не цвет

Спасибо заранее! :)

редактировать - Спасибо за ответы, которые помогли, я чувствую себя идиотом любопытное: S я просто выбрал один с наименьшим указывает на их имя

+1

У вас нет функции 'rgb'. Вам нужен строковый литерал. – SLaks

ответ

1
"rgb(0,0,255)" != rgb(0,0,255) 

Добавить котировки, если заявление , Прямо сейчас вы проверяете, соответствует ли строка «rgb (0,0,255)» результат функции rgb с тремя ints (0,0,255), переданными в качестве аргументов.

Значение в цвете обрабатывается как строка. Эти два варианта также различны:

"rgb(0,0,255)" != "rgb(0, 0, 255)" 

... из-за пробелов в значениях. Возможно, вы захотите сначала преобразовать их в шестнадцатеричный и провести сравнение там, так как вероятность того, что у вас возникнет такая проблема, будет меньше.

0

Вы столкнулись две проблемы здесь:

  1. Как уже было упомянуто дважды, прежде, вам нужно проверять значение цепочки, а не возвращения вызова несуществующие функции (что rgb(0,0,255) есть, в этой ситуации ... функция rgb не определена в вашем коде).
  2. «Установленная» функциональность style.color будет принимать гораздо более широкий формат входных данных, чем выводит функциональность «get». Если вы вводите «красный», style.color также выдает «красный». Однако, если вы введете «rgb (0,0,255)», то style.color фактически выведет «rgb (0, 0, 255)» (обратите внимание на пробелы после запятых).

Вы можете проверить значение этот путь, но, если вы делаете, вы должны быть в курсе того, что именно для проверки, для того, чтобы работать.

1

Вы можете увидеть в окне предупреждения еще два пространства:

"rgb(0, 0, 255)" 

И не забудьте запятые.

Вы также можете использовать: «синий» или «# 0000ff».

+0

Это неверно; по крайней мере, в Chrome. Браузер вернет строку, в которую был установлен цвет (плюс некоторая нормализация, например пробелы между значениями RGB). Он не будет проверять эквивалентные цвета. "rgb (0,0,255"!= «синий») –

+0

Да, я нашел, что вы не можете использовать синий или шестиугольный цвет –

+0

Потому что вы должны использовать его последовательно: «синий» == «синий» – titapo

Смежные вопросы