更改函数调用中的css不起作用

时间:2012-09-08 12:00:54

标签: javascript css

我想在函数call.ie中更改css,在我的情况下,当函数返回true时,将样式添加到复选框。但它没有用。

脚本代码,

function checkAll()
{
    if ( document.myForm.myCB.length )
        {
            for (var x = 0; x < document.myForm.myCB.length; x++)
            {
                var flag=1;
                    if (flag == 1)
                    {
                        document.myForm.myCB[x].checked = true; 
                $('.checkbox').attr("style", "background-position:top left;");              
                    }
                    else 
                    {
                        document.myForm.myCB[x].checked = false;
                    }

            }
        }

}

Html代码是,

   <form name="myForm" id="myForm" action="" method="get"> 

   <p><input type="button" name="ca_v1_on" value="Check All" onclick="checkAll(1);"/></p>
   <p> <input class="checkbox" type="checkbox" name="myCB" value="yes" id="myCB"/></p>

  <p><input class="checkbox" type="checkbox" name="myCB" value="yes" id="myCB"/></p>

  <p><input class="checkbox" type="checkbox" name="myCB" value="yes" id="myCB"/></p>
 </form>

请帮忙。

感谢,

3 个答案:

答案 0 :(得分:2)

对jQuery使用.css

$('.checkbox').css("background-position", "top left");

或简单的javascript:

var elements = document.getElementsByClassName('checkbox');
for(var i = 0, length = elements.length; i < length; i++) {
     elements[i].backgroundPosition = 'top left';
}

请注意,getElementsByClassName()not available up to and including IE8

您可以在所有浏览器上使用它,check this进行一些比较,例如:

if (!('getElementsByClassName' in document)) {
    document.getElementsByClassName = function(className, parentElement) {
        if (Prototype.BrowserFeatures.XPath) {
            var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
            return document._getElementsByXPath(q, parentElement);
        } else {
            var children = ($(parentElement) || document.body).getElementsByTagName('*');
            var elements = [],
                child;
            for (var i = 0, length = children.length; i < length; i++) {
                child = children[i];
                if (Element.hasClassName(child, className)) elements.push(Element.extend(child));
            }
            return elements;
        }
    };
}​

答案 1 :(得分:0)

见这一行:

$('.checkbox').attr("style", "background-position:top left;");

你可以这样写:

$('.checkbox').css("background-position", "top left");

答案 2 :(得分:0)

更改css你应该使用.css而不是.attr

所以这个

$('.checkbox').attr("style", "background-position:top left;");

将会

$('.checkbox').css("background-position", "top left");

在所有使用JavaScript的浏览器中运行,如果你想让不同的浏览器使用JavaScript,请查看modernizr