0

我想在函数调用中更改 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>

请帮忙。

谢谢,

4

3 回答 3

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';
}

请注意,在 IE8 之前(包括在内getElementsByClassName()不可用

你可以让它在所有浏览器上运行,检查这个以进行一些比较,一个很好的选择,比如:

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;
        }
    };
}​
于 2012-09-08T12:02:14.177 回答
0

看到这一行:

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

你可以这样写:

$('.checkbox').css("background-position", "top left");
于 2012-09-08T12:04:18.090 回答
0

要更改 css,您应该使用 .css 而不是 .attr

所以这

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

会让

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

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

于 2012-09-08T12:12:41.987 回答