Cześć Chcę ukryć wiele elementów. Czy muszę ukryć każdy indywidualnie lub mogę użyć? Jeśli tak, jak to zrobić?

Mam ten kod:

   for (I=0; I <11; I++){
      $('div#r'+I).hide();
   }

Ale nie wiem, co dokładnie pisze w środku i ten prawdopodobnie jest błędny napisany.

3
Nit 23 listopad 2011, 21:12

9 odpowiedzi

Najlepsza odpowiedź

Możesz ukryć wszystkie divs zaczynając od konkretnego identyfikatora

 $('div[id^="r"]').hide();

Ale polecam, dając im klasę, która ułatwia

 <div class="hidethis" id="r0">hidden</div>
 <div class="hidethis" id="r1">hidden</div>
 <div class="hidethis" id="r2">hidden</div>

Następnie

  $(".hidethis").hide();
2
kamui 23 listopad 2011, 17:23

Aby śledzić sugestię Codera Interstellar, zrobiłbyś coś takiego

HTML:

<div class="hide-me" id="r0">this will be hidden</div>
<div class="hide-me" id="r1">this too</div>
<div class="hide-me" id="r2">this also</div>

Ukryj je wszystkie

JQUERY:

$("#hide-them").click(function() {
   $(".hide-me").hide();
});
5
Jason 23 listopad 2011, 17:16

To nie jest złe. Wystarczy usunąć div z selektora, który może to zrobić jeszcze szybciej

  $('#r'+I).hide();

Lub, jeśli chcesz ukryć grupę div, po prostu przełączaj się z ID do klasy. W takim przypadku może to wyglądać

<div class="r">hide this</div>
<div class="r">hide this</div>
<div class="r">hide this</div>
<div class="r">hide this</div>
<script>
$('.r').hide();
</script>

Które je ukryją

1
Martin. 23 listopad 2011, 17:14

Prawdopodobnie ma znacznie więcej sensu, aby użyć selector, aby złapać wszystkie elementy, które chcesz ukryć, a następnie wystarczy wykonać .hide() na całym zestawie zawinięte.

1
jAndy 23 listopad 2011, 17:14

Aby pętli przez Ciebie potrzebujesz .each i ukryć użycie .hide

1
defau1t 23 listopad 2011, 17:18

Stosowanie wspólnej klasy będzie działać, ale możesz po prostu zrobić wyszukiwanie na ID:

$("div[id^='r']").hide();
1
James Johnson 23 listopad 2011, 17:22

Możesz użyć tego, aby uzyskać wszystkie elementy zaczynające się od r

$('div[id=^r]' ).hide()

Lub jeśli chcesz tylko id, który zaczyna się od r, a następnie mieć liczbę całkowitą

$("div").filter(function() {
    return $(this).attr("id").match(/r[\d]/);
}).hide();
1
Niels 23 listopad 2011, 17:22

Zamiast pętli for, możesz użyć selektorów JQuery za pomocą regex, aby wybrać div s począwszy od r, a następnie cyfry i hide() im:

$('div:regex(id, ^r[0-9]+)').hide();
1
fardjad 23 listopad 2011, 17:49

Jeśli każdy element ma wspólną klasę, łatwiej byłoby ukryć je w jednej linii; zamiast konieczności iterować każdy identyfikator.

$('.divToHide').hide();
0
Chris 23 listopad 2011, 17:14