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代替styleSheet中的索引styleSheets[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 回答