如何将jQuery本机/本地作用域公开给变量以扩展对象方法

时间:2016-12-14 01:51:55

标签: javascript jquery arrays dom scope

好吧也许这个问题之前已经得到了回答,但我甚至不知道如何问这个问题。我只能告诉你我想做什么。

我使用jQuery选择器函数创建一个文档对象数组,并将其分配给如下变量:

    var imgArray = $("#rootContainer > img");

现在当我遍历数组时,所有的jQuery方法都消失了。例如,这不起作用。

   for (i = 0; i < imgArray.length; i++) {
       var scaledWidth = (imgArray[i].width * 0.5); 
       imgArray[i].width(scaledWidth);
    } 

类似宽度的错误不是一个函数......它不在标准DOM中,但如果将jQuery范围传递给变量,那么它就是。我可以让代码在纯javascript中工作,但是如果你不能通过范围那么是什么呢?

2 个答案:

答案 0 :(得分:0)

我知道从阵列$(selector)[index]$(selector).get(index)$(selector).eq(index)中获取所需元素的三种方法......并且您可以使用foreach

$.foreach(imgArray,function (index, img){
     scaledWidth = (img.width() * 0.5); 
     img.width(scaledWidth);
});


for (i = 0; i < imgArray.length; i++) {
   var img = $(imgArray)[i],
       scaledWidth = (img.width() * 0.5); 
   img.width(scaledWidth);
}

答案 1 :(得分:0)

当你有一个jQuery实例时,你可以调用jQuery方法。如果您有一个DOM节点,则可以使用本机DOM API,并调用DOM方法并设置DOM属性,但不能在常规DOM元素上使用jQuery方法。

在这里您可以找到更多详细信息:

http://james.padolsey.com/stuff/jQueryBookThing/#dom-then-jquery