0

これは初歩的なことだとわかっているのですが、理解できません...

css の変更を複数の要素に適用するにはどうすればよいですか? 現時点では、最初にのみ機能していますが、エラーは表示されていません。

function elemInit(){

    var elem1 = jQ('#elem1');
    var elem2 = jQ('#elem2');

    jQ(elem1, elem2).each(function(){
        jQ(this).css({
            'margin-left': '-' + jQ(this).width()/2 + 'px'
        });
    });

};

elemInit();

jQ競合がないようにすることです。

4

4 に答える 4

3

jQuery セレクターは CSS セレクターのように機能し、cssメソッドは内部でメソッドを使用しeachます。次のようにコーディングできます。

jQ('#elem1, #elem2').css('marginLeft', function(i, oldMarginLeft) {
     return '-' + jQ(this).width()/2 + 'px';
});
于 2013-02-18T14:29:01.140 に答える
2
var jQelem1and2 = jQ('#elem1, #elem2');

jQelem1and2.each(function(){
    jQ(this).css({
        'margin-left': '-' + jQ(this).width()/2 + 'px'
    });
});

それとも私は何かを逃しましたか?

于 2013-02-18T14:27:22.347 に答える
1

2 つの jQuery オブジェクトを結合するために使用した構文 -- $($obj1, $obj2)-- が正しくありません。それはまったく違うことをします。

必要な要素を直接一致させることで機能する他のソリューションとは別に、一般的なソリューションは次を使用すること.addです。

$obj1.add($obj2).each(...)

.eachそして最後に、ここでは必要ありません.css。直接でも機能します。

于 2013-02-18T14:30:06.680 に答える
0

これを試して

var elem1 = '#elem1';
var elem2 = '#elem2';  
jQ(elem1, elem2).each(function(){
    jQ(this).css({
        'margin-left': '-' + jQ(this).width()/2 + 'px'
    });
});
于 2013-02-18T14:29:48.213 に答える