0

我正在构建一个包含这样一些元素的数组:

var listAccordions = [];
$("#accordeon ul.sub-menu.ui-accordion").each(function() { 
listAccordions.push("#" + $(this).parent().attr('id') + " ul.sub-menu");
});

这里一切正常,我有我的数组,很好,现在我想像这样使用它:

$( listAccordions ).hide();

但这似乎不起作用?

非常感谢您的帮助

4

5 回答 5

2

你可以这样做:

$(listAccordions.join(',')).hide();

但合理的问题是:为什么需要这样的数据结构?

于 2012-10-16T14:16:36.060 回答
0

您将不得不遍历listAccordions并调用hide每一个。

for (var i = 0; i < listAccordions.length; i++) {
   $(listAccordions[i]).hide();
}
于 2012-10-16T14:14:09.900 回答
0

listAccordions在内存中,而不是 DOM。您可以为这些元素添加类名,然后使用类名隐藏它们 - 如果您打算将此集合用于其他用途。否则,将它们隐藏在循环中。

于 2012-10-16T14:14:28.357 回答
0
$.each(listAccordions,function(i,item) {
  $("#"+item).hide();
});

将工作。你的数组是一个字符串数组

var listAccordions = [];
$("#accordeon ul.sub-menu.ui-accordion").each(function() { 
  listAccordions.push($("#" + $(this).parent().attr('id') + " ul.sub-menu"));
});

listAccordions.each(function() {
  $(this).hide()
});

也应该工作

于 2012-10-16T14:14:57.077 回答
0

尝试类似的东西

$(listAccordions).each(function() {
    $(this).hide();
}
于 2012-10-16T14:16:16.450 回答