Я использую ниже кода JS для изменения класса, когда на ссылку нажимают.
document.getElementById("gifts").setAttribute("class", "gkvSprite selected");
Это не работает в IE, но он делает в FF и Chrome. Затем я изменил код на:
document.getElementById("gifts").setAttribute("className", "gkvSprite selected");
Затем это работало в IE, но прекратило работать в FF и Chrome.
Кто-то мог помочь мне здесь?
Вы можете надежно использовать свойство className
вместо setAttribute
:
document.getElementById("gifts").className = "gkvSprite selected";
В общем, есть пара имен атрибутов, которые разные браузеры обрабатывают по-разному в setAttribute
: class
vs className
и для
vs. htmlFor
. Такие библиотеки, как Prototype , jQuery и т.п., сгладят эти различия для вас, хотя (опять же) в конкретной ситуации class
вы можете надежно использовать свойство вместо этого.
Вы можете сделать это несколькими способами.
Если вы хотите использовать setAttribute
, вы можете определить, какой браузер использует клиент, а затем использовать класс
в IE и имя класса
в Firefox.
Вышеупомянутое будет работать, но я бы предпочел использовать div и назначить для этого новый класс.
somediv.className='gkvSprite selected'
Или как T.J. Краудер сказал выше. Назначить напрямую через Classname
.