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).each(function() {
    $(this).hide();
}
于 2012-10-16T14:16:16.450 に答える
0

ループして、それぞれlistAccordionsを呼び出す必要がありますhide

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

listAccordionsDOM ではなく、メモリ内にあります。これらの要素にクラス名を追加し、クラス名を使用してそれらを非表示にすることができます (このコレクションを他の目的に使用する場合)。それ以外の場合は、ループ内で非表示にします。

于 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 に答える