「getElementsByClassName
」はIE8
でサポートされていません。代わりに何を使用できるか知っていますか?エラーで迷惑になっています
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」。
HTMLコードは次のとおりです。
function sumar() {
var elems = document.getElementsByClassName('verdana14 toAdd');
var myLength = elems.length;
total = 0;
for (var i = 0; i < myLength; ++i) {
if (elems[i].value!="") {
total += parseInt(elems[i].value,10);
}
}
var promedio = total/myLength;
parseFloat(document.getElementById('promediocal').value = promedio.toFixed(2));
}
これは、javascript関数を呼び出す入力テキストです。
<input name='AE_EA_1_BIV_003_2' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_2' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_3' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_3' style='width:50px' onChange='sumar()'/>
<input name='AE_EA_1_BIV_003_4' type='text' class='verdana14 toAdd' id='AE_EA_1_BIV_003_4' style='width:50px' onChange='sumar()'/>
document.querySelectorAll('.verdana14.toAdd')
を使用します。
関連する ブログ投稿 も参照してください。
getElementsByClassName
メソッドはIE8ではサポートされていません。
document.querySelectorAll('.classname')
(IE8 +で動作)またはその機能を実装するライブラリを使用する必要があります。
jQuery
Moo Tools
DOJO
YUI
Prototype
...とりわけ...
querySelectorAll
サポート:
http://www.quirksmode.org/dom/w3c_core.html#t1
getElementsByClassName
サポート:
自分で書くこともできます。何かのようなもの:
function GEBCN(cn){
if(document.getElementsByClassName) // Returns NodeList here
return document.getElementsByClassName(cn);
cn = cn.replace(/ *$/, '');
if(document.querySelectorAll) // Returns NodeList here
return document.querySelectorAll((' ' + cn).replace(/ +/g, '.'));
cn = cn.replace(/^ */, '');
var classes = cn.split(/ +/), clength = classes.length;
var els = document.getElementsByTagName('*'), elength = els.length;
var results = [];
var i, j, match;
for(i = 0; i < elength; i++){
match = true;
for(j = clength; j--;)
if(!RegExp(' ' + classes[j] + ' ').test(' ' + els[i].className + ' '))
match = false;
if(match)
results.Push(els[i]);
}
// Returns Array here
return results;
}
うまく機能しますが、必要に応じてより高速なものを作成できます。その後、変更するだけです:
document.getElementsByClassName('verdana14 toAdd');
に:
GEBCN('verdana14 toAdd');
jQueryを使用するか、getElementsByTagの結果をフィルタリングします