jQuery .each css不是一个函数

时间:2014-08-05 14:18:56

标签: javascript jquery html css

我有一个包含3个成员的jQuery对象:

var elements = $("#" + this.wrapperName + ">ul>li>a>img");
Object { 0: <img>, 1: <img>, 2: <img>, length: 3, prevObject: Object, context: HTMLDocument → JSUmstellung, selector: "#newsdesk>ul>li>a>img" }

我想更改每个CSS-Property,所​​以我做了这个:

elements.each(function(index, element) {
    element.css({
        "width": elemWidth,
        "height": elemHeight,
        "top": elemTop,
        "left": elemLeft
    });
}

当我运行此代码时,我收到以下错误:

  

TypeError:element.css不是函数

我做错了什么?我是否必须以其他方式访问我的元素?

提前致谢!

3 个答案:

答案 0 :(得分:18)

问题是element是一个DOM节点,无法访问jQuery方法,您需要使用的是$(this)$(element)

elements.each(function(index, element) {
    $(this).css({
        "width": elemWidth,
        "height": elemHeight,
        "top": elemTop,
        "left": elemLeft
    });
}

或者:

elements.each(function(index, element) {
    $(element).css({
        "width": elemWidth,
        "height": elemHeight,
        "top": elemTop,
        "left": elemLeft
    });
}

或者您可以使用cssText(如果真的想要使用DOM节点):

elements.each(function(index, element) {
    element.style.cssText = 'width: ' + elemWidth + '; height: ' + elemHeight + ' top: ' + elemTop + '; left: ' + elemLeft;
}

请注意,在each(function (index, element){ ... }); element内与this完全相同(并且,作为推论,$(this)$(element)相同)。我不确定使用element的好处是什么。

答案 1 :(得分:1)

您必须以jquery格式包装它。像这样:

elements.each(function(index, element) {
    $(element).css({
        "width": elemWidth,
        "height": elemHeight,
        "top": elemTop,
        "left": elemLeft
    });
}

注意:
$(element)

答案 2 :(得分:0)

你必须在每个循环中使用$(this)选择器

elements.each(function(index, element) {
    $(this).css({
        "width": elemWidth,
        "height": elemHeight,
        "top": elemTop,
        "left": elemLeft
    });
}