我有一个包含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不是函数
我做错了什么?我是否必须以其他方式访问我的元素?
提前致谢!
答案 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
});
}