Следующий код javascript работает неправильно. (Я использую IE9 и не может использовать другой браузер или JQuery):изменение классаName issue (javascript и IE)
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].className = "Zero";
}
Что происходит, только некоторые элементы с Classname «EditableTextBox» заменяются на Classname «Ноль», многие остаются с Classname «EditableTextBox». Дополнительного кода, который может вызвать эту проблему, не существует; этот код - это последний бит кода, который я выполняю до обновления экрана.
Я думал, что проблема была с .getElementsByClassName не находя все правильные элементы, однако:
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].value = "test";
}
этот код изменяет значение всех правильных элементов «тест», так .getElementsByClassName ДЕЛАЕТ найти все элементы правильно.
Я не понимаю, что вызывает здесь проблему. Мой путь вокруг этого ниже, но может ли кто-нибудь с большим опытом здесь объяснить, почему первый блок кода не работает? Спасибо.
Мой Обход в случае, если кто интересуется:
var elems = document.getElementsByTagName("input");
for (var i = 0; i < elems.length; i++) {
if (elems[i].className == "EditableTextBox")
elems[i].className = "Zero";
Спасибо.
Возможный дубликат [Как заменить один класс другим на всех элементах, используя только DOM?] (Http://stackoverflow.com/questions/16510973/how-can-i-replace-one-class- with-another-on-all-elements-using-just-the-dom) – Anonymous