0

関数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>

助けてください。

ありがとう、

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 を変更するには、.attr ではなく .css を使用する必要があります

したがって、この

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

作る予定です

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

すべてのブラウザーで JavaScript を使用してスポーツします。JavaScript を使用しないブラウザーとは異なるものにしたい場合は、modernizrをご覧ください

于 2012-09-08T12:12:41.987 に答える