javascript - jQuery 在多个元素上调用函数的更好方法?

标签 javascript jquery function call

我想知道是否有更好的方法来处理多个函数调用。基本上我有一个函数接收和元素作为参数之一,以及一些属性。我必须在几个元素上调用这个函数...

function positionMe(element,position){ ... }

positionMe(obj1,top);
positionMe(obj2,left);
positionMe(obj3,bottom);
positionMe(obj4,right);
positionMe(obj5,bottom);

只看代码似乎我做错了什么。一开始我以为我可能可以传入一个元素的集合,但是好像不行。有什么想法吗?

最佳答案

根据您提供的信息,我将创建一个包含所有所需信息的数组,并在您的函数中循环遍历它:

function positionMe(elements)
{
    for(var i = 0, numberOfElements = elements.length; i < numberOfElements ; i++) {
        // Do stuff with the objects you want to do in here

        // access the current object
        console.log(elements[i].object);

        // access the current direction
        console.log(elements[i].direction);
    }
}

var yourObjects = [
    {
        object: obj1,
        direction: 'top'
    },
    {
        object: obj2,
        direction: 'left'
    },
    {
        object: obj3,
        direction: 'bottom'
    },
    // etc
];
positionMe(yourObjects);

更新

作为Reflective commented :

better use for (var i in element) { console.log(elements[i].object);}

javascript 中的数组不是这种情况。好吧,这不是那么简单。因为你最终也会遍历数组对象的所有继承的东西,比如pop()push() 等。有一种方法可以通过 the use of hasOwnProperty() 来防止这种情况发生。 .

另一种方法是使用 forEach()从 JavaScript 1.6 开始可用。所以我认为并不是所有的用户代理都内置了对此的支持。

关于javascript - jQuery 在多个元素上调用函数的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593402/

相关文章:

javascript - getElementById() ?提交/刷新后记住最后一个事件选项卡

c - 函数指针存放在程序的哪一段?

javascript - 什么是 JavaScript 中的 Empty 函数,为什么它未定义?

jquery - 如何在 Django 表单中添加新的相关对象

javascript - 如何在 Try-Catch block 中围绕错误打印行号

javascript - 如何使用 JQuery 中子级的 id 将子级 div 附加到父级折叠面板

function - 将多个参数传递给Powershell中的函数变量

javascript - 单击图像不起作用

javascript - VS Code 未定义“require”

javascript - 使用 javascript 激活 HTML5 所需的验证并获取结果