【问题标题】:Calling var array=[] within each function在每个函数中调用 var array=[]
【发布时间】:2012-06-26 17:18:26
【问题描述】:

我正在做一个项目,我有不同的 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 技能不是很好,如果有任何帮助,我们将不胜感激。

【问题讨论】:

    标签: jquery arrays jquery-plugins each


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      只需在数组上运行 $.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');
              });
          }
      
      });
      

      【讨论】:

        【解决方案3】:

        创建一个循环,遍历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');
                });
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-12
          • 1970-01-01
          • 2014-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-24
          • 2020-12-03
          相关资源
          最近更新 更多