以下javascript代碼無法正常工作。 (我使用IE9,並且不能使用不同的瀏覽器或JQuery的):更改className問題(javascript和IE)
var elems = document.getElementsByClassName("EditableTextBox");
for (var i = 0; i < elems.length; i++) {
elems[i].className = "Zero";
}
會發生什麼事,只與類名「EditableTextBox」的一些元素會變爲類名「零」,許多人仍然與類名「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-與另一個所有元素使用只是這個dom) – Anonymous 2015-06-18 15:08:50