1

これをIE7で動作させる。クラスを介してフォームの入力テキスト フィールドの背景色を変更しようとしています。IE7 は getelementsbyClassName をサポートしていないため、関数を作成する必要があることを理解しています。getelementsbyClassName 関数の多くの例を試しましたが、うまくいきませんでした。誰かが私に解決策を提供してくれることを願っています。

function changecolor() {
    //i don't know what to put here
}

<input type="text" class="items">
<input type="text" class="items">
<input type="text" class="items">
<div onclick="changecolor()">Change Color</div>
4

2 に答える 2

1

これはIE7でトリックを行います:

function changecolor(c){
  var a,n;
  a=getElementsByTagName('INPUT'); // or a=document.all for all elements in items-class;
  for(n=0;n<a.length;a++){
   if(a[n].className=='items'){
     a[n].style.backgroundColor=c;
   }
   return;
}

でルールを編集することもできますがclass、ページをリフローする前に実際に色を変更できるとは限りません。

function changeColor(c){
    var sSheet,n;
    sSheet=document.styleSheets[0].rules;
    for(n=0;n<sSheet.length;n++){
        if(sSheet[n].selectorText=='.items') sSheet[n].style.backgroundColor=c;
    }
    return;
}

のインデックスidの代わりに のを使用できます。styleSheetstyleSheets[0]

于 2012-04-21T12:33:26.570 に答える
0

最新の関数を使用したいが、古いブラウザーをサポートする必要があるため、最善の解決策はjQueryなどのライブラリーを使用することです。

jQuery を使用すると、やりたいことは非常に簡単です。

<input type="text" class="items">
<input type="text" class="items">
<input type="text" class="items">
<div id="changeColor">Change Color</div>

<script>
$('#changeColor').on('click', function() {
     $('input.items').css('backgroundColor', '#0ff');
});
</script>

ここにデモがあります:http://jsfiddle.net/ThiefMaster/kSwv8/

于 2012-04-21T12:38:57.200 に答える