使用JQuery将变量传递给函数

时间:2013-11-05 10:24:50

标签: jquery

以下不起作用:

function doRestyle(div) {
        jQuery(div).css({
            "margin-top": addableMargin + "px",
            "margin-bottom": addableMargin + "px",
        });
}

然而,这有效:

function doRestyle(div) {
        jQuery('#idName').css({
            "margin-top": addableMargin + "px",
            "margin-bottom": addableMargin + "px",
        });
}

任何解释?非常感谢:))

2 个答案:

答案 0 :(得分:3)

  

“任何解释?”

显然,当你调用你的函数时,你传入的参数(变成div)不是带有相应选择器的字符串或对有问题的DOM元素的引用(或者包含对该元素的引用的jQuery对象)元素)。

你需要像这样调用你的函数:

doRestyle("#idName");

或者使用一些已正确设置的变量:

var id = "idName";
doRestyle("#" + id);

或者也许在事件处理程序中:

$("#idName").click(function() {
    doRestyle(this);
});

答案 1 :(得分:0)

function doRestyle(someID) {
        jQuery('#'+someID).css({
            "margin-top": addableMargin + "px",
            "margin-bottom": addableMargin + "px",
        });
}

:d