jquery/javascript如何在集合中使用$。每个

jquery/javascript如何在集合中使用$。每个,javascript,jquery,Javascript,Jquery,我需要一些关于jQuery代码的帮助。下面的代码运行良好,但我尝试使用$.each,但它不起作用 $(document).ready( function(){ $('#pull').click( function(event){ event.stopPropagation(); $('#pf').slideToggle(); }); $('#pullo').click( function(event){ event.st

我需要一些关于jQuery代码的帮助。下面的代码运行良好,但我尝试使用$.each,但它不起作用

$(document).ready( function(){

    $('#pull').click( function(event){
        event.stopPropagation();
        $('#pf').slideToggle();
    });
     $('#pullo').click( function(event){
        event.stopPropagation();
        $('#pt').slideToggle();
    });
      $('#pullc').click( function(event){
        event.stopPropagation();
        $('#pc').slideToggle();
    });

    $(document).click( function(){
        $('#pt').hide();
        $('#pf').hide();
        $('#pc').hide();
    });
});
下面的代码对我无效,请帮助

var pul = ["#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"];

$(document).ready( function(){

  $.each(pul, function(i, v){
    $(i).click( function(event){
        event.stopPropagation();
        $(v).slideToggle();
    });
    $(document).click(function(){
        $(v).hide();

    });
  });  


});
试试这个

var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"};

$(document).ready( function(){

  $.each(pul, function(i, v){
    $(i).click( function(event){
        event.stopPropagation();
        $(v).slideToggle();
    });
    $(document).click(function(){
        $(v).hide();

    });
  }); 
});

使集合对象而不是数组:


有两种方法可以解决这个问题。将阵列设置为二维阵列:

var pul = [
    ["#pull", "#pt"],
    ["#pullo", "#pf"], 
    ["#pullc", "#pc"]];
您可以执行
$(v[0])。单击(…
而不是
$(i)。单击(…
)和
$(v[1])。隐藏();
而不是
$(v)。隐藏();

或者,您可以将其转换为其他人建议的对象:

var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"};

现在,您有一个无效的对象和一个无效的数组。

看起来您的数组语法无效。您应该为对象使用大括号(“关联”数组)。你的
pul
数组应该是一个对象,这是无效的JavaScript。你似乎想重构脚本。你能发布HTML吗?它看起来也像是你把
#pt
#pf
搞混了。请注意,当你点击
文档
时,你所有的元素都会
.hide()
。谢谢,它现在可以工作了。语法错误应该使用{}而不是[]:)
$(''+i)
可以是
$(i)
。无需将其“转换”为字符串。谢谢,它现在可以工作了。语法错误应该使用{}而不是[]:)我将其转换为有效对象,现在可以工作了。非常感谢。
var pul = {"#pull":"#pt","#pullo":"#pf", "#pullc":"#pc"};