在每个函数中调用var array = []

时间:2012-06-26 17:18:26

标签: jquery arrays jquery-plugins each

我正在开发一个项目,我有不同的div组,如标题,文字,图像等。

单击后,我想为相关数量的div添加输入框。

你可以在这里看到工作小提琴:http://jsfiddle.net/UN62E/

这个脚本对我有用,但我需要使用这个脚本进行改进。

这是我的脚本的一部分:

var eltofind = "heading";

if($(this).find("." + eltofind).length != 0){

    var eltoget = $(this).find("." + eltofind);

    $(eltoget).each( function(index) {
         var item = $('input.' + eltofind + ':first').clone();
        var count = (index +1);
        var getting = eltofind + "-" + count;
        item.addClass(getting);
        item.appendTo('#input');
    });
}

目前我正在为各个div重复整个脚本。有没有办法在数组中调用所有div组?例如:

var eltofind = ["heading", "text", "image"] 

&安培;在每个功能中调用它们?

我的jQuery技能并不那么好&任何帮助,将不胜感激。

3 个答案:

答案 0 :(得分:3)

你可以在jQuery中创建多个选择器

$(".heading, .text, .image").foo();

答案 1 :(得分:1)

只需在数组上运行$.each(),使用eltofind参数替换el

var elstofind = ["heading", "text", "image"];

$.each(elstofind, function(i, el){

    if($(this).find("." + el).length != 0){
        var eltoget = $(this).find("." + el);

        $(eltoget).each(function(index) {
            var item = $('input.' + el + ':first').clone();
            var count = (index + 1);
            var getting = el + "-" + count;
            item.addClass(getting);
            item.appendTo('#input');
        });
    }

});

答案 2 :(得分:0)

创建一个循环遍历eltofind的每个值并执行相应的操作。

var eltofind = ["heading", "text", "image"];

for(var i=0; i < eltofind.length; i++){
     var thisElement = eltofind[i];

    if($(this).find("." + thisElement).length != 0){

        var eltoget = $(this).find("." + thisElement);

        $(eltoget).each( function(index) {
            var item = $('input.' + thisElement + ':first').clone();
            var count = (index +1);
            var getting = thisElement + "-" + count;
            item.addClass(getting);
            item.appendTo('#input');
        });
    }
}