将函数应用于特定元素

时间:2013-02-18 14:26:14

标签: jquery

我知道这是基本的东西,但我无法理解......

如何将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 个答案:

答案 0 :(得分:3)

jQuery选择器的工作方式与CSS选择器类似,css方法在内部使用each方法,您可以编写代码:

jQ('#elem1, #elem2').css('marginLeft', function(i, oldMarginLeft) {
     return '-' + jQ(this).width()/2 + 'px';
});

答案 1 :(得分:2)

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

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

或者我错过了什么?

答案 2 :(得分:1)

用于连接两个jQuery对象的语法 - $($obj1, $obj2) - 不正确;它确实something entirely different

除了通过直接匹配您需要的元素而工作的其他解决方案之外,一般的解决方案是使用.add

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

最后,这里.each真的没有必要 - .css也可以直接使用。

答案 3 :(得分:0)

试试这个

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