Как я могу надежно установить класс attr w/JavaScript на IE, FF, Chrome, и т.д.?

Я использую ниже кода JS для изменения класса, когда на ссылку нажимают.

document.getElementById("gifts").setAttribute("class", "gkvSprite selected");

Это не работает в IE, но он делает в FF и Chrome. Затем я изменил код на:

document.getElementById("gifts").setAttribute("className", "gkvSprite selected");

Затем это работало в IE, но прекратило работать в FF и Chrome.

Кто-то мог помочь мне здесь?

10
задан T Zengerink 30 July 2012 в 14:58
поделиться

2 ответа

Вы можете надежно использовать свойство className вместо setAttribute :

document.getElementById("gifts").className = "gkvSprite selected";

В общем, есть пара имен атрибутов, которые разные браузеры обрабатывают по-разному в setAttribute : class vs className и для vs. htmlFor . Такие библиотеки, как Prototype , jQuery и т.п., сгладят эти различия для вас, хотя (опять же) в конкретной ситуации class вы можете надежно использовать свойство вместо этого.

14
ответ дан 3 December 2019 в 22:36
поделиться

Вы можете сделать это несколькими способами.

Если вы хотите использовать setAttribute , вы можете определить, какой браузер использует клиент, а затем использовать класс в IE и имя класса в Firefox.

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

somediv.className='gkvSprite selected'

Или как T.J. Краудер сказал выше. Назначить напрямую через Classname .

1
ответ дан 3 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: