2012-10-16 2 views
0

나는이 같은 일부 요소 배열을 짓고 있어요와 요소 :배열 및 jQuery를

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

모든 것이 여기 좋은, 난 내 배열을 가지고 작품 그리고 그것은 좋은 데요, 지금은이처럼 사용하려면 :

$(listAccordions).hide(); 

그러나 이것은 작동하지 않는 것 같습니까?

당신의 도움이

답변

0

당신은 listAccordions을 통해 루프가 있고 각각에 대해 hide를 호출하여 주셔서 대단히 감사합니다.

for (var i = 0; i < listAccordions.length; i++) { 
    $(listAccordions[i]).hide(); 
} 
+0

해결책이 될 수도 있습니다. "for"솔루션은 "각"도 더 빠릅니다. – moabi

0

listAccordions은 DOM이 아니라 메모리에 있습니다. 이러한 요소에 클래스 이름을 추가 한 다음 클래스 이름을 사용하여이 요소를 숨길 수 있습니다.이 컬렉션을 다른 요소에 사용하려는 경우. 그렇지 않으면 루프에서 숨 깁니다.

0
$.each(listAccordions,function(i,item) { 
    $("#"+item).hide(); 
}); 

.

$(listAccordions.join(',')).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() 
}); 

너무

0

작동 당신은 이런 식으로 작업을 수행 할 수 있습니다

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

nope. 안돼 ... – mplungjan

2

같은 것을 시도해야 문자열의 배열입니다 : 왜 그런 데이터 구조가 필요할까요?

+0

아 - 좋은. – mplungjan

+0

괜찮아요, 데이터 구조에 대해 잘 작동하는 것 같습니다 : # myid-8798 ul.sub-menu 그래서 배열에서 직접 처리 할 수도 있지만 요소와 비교해야합니다. 배열에서 필요하지 않은이 요소는 이미이 형식입니다. 그래서 ... 더 좋은 방법 이죠? – moabi