嗨,我想隱藏很多元素。我是否需要單獨隱藏每個或可以使用FOR? 如果是這樣,該怎麼辦?jQuery FOR語句
我有這樣的代碼:
for (I=0; I <11; I++){
$('div#r'+I).hide();
}
但我不知道是什麼exacly寫的內部。而這一次可能是錯寫成。
嗨,我想隱藏很多元素。我是否需要單獨隱藏每個或可以使用FOR? 如果是這樣,該怎麼辦?jQuery FOR語句
我有這樣的代碼:
for (I=0; I <11; I++){
$('div#r'+I).hide();
}
但我不知道是什麼exacly寫的內部。而這一次可能是錯寫成。
您可以隱藏所有以特定ID開頭的div
$('div[id^="r"]').hide();
,但我會推薦給他們的一類,這使得它更容易
<div class="hidethis" id="r0">hidden</div>
<div class="hidethis" id="r1">hidden</div>
<div class="hidethis" id="r2">hidden</div>
然後
$(".hidethis").hide();
如果每個元素都有一個共同的類,它將更容易將它們隱藏在一行中;而不必遍歷每個Id。
$('.divToHide').hide();
這沒有錯。只是從你選擇刪除div
,這可能使它更快
$('#r'+I).hide();
或者,如果你想隱藏組的div,剛剛從標識開關類。在這種情況下,它可能看起來像
<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>
這將隱藏所有
你可以這樣做:
// hide all divs with IDs starting with 'r'
$('div[id^="r"]').hide();
你可以用它來獲取所有的元素以r開頭
$('div[id=^r]').hide()
或者,如果你只想要的ID與的R開始,然後有一個整數
$("div").filter(function() {
return $(this).attr("id").match(/r[\d]/);
}).hide();
Typo'id =^= r'需要是'id^= r'。我修好了,猜想它被覆蓋了。 –
Thnx,是的,我已經添加了一個匹配,只有R +號碼是合法的,當我更新它時,您可能會改變它。 – Niels
這可能使許多更有意義的使用somekind的的selector
抓住所有你要隱藏的元素,然後只執行整套包裝上整套.hide()
。
取而代之的是for
循環,您可以使用JQuery
選擇與regex
選擇div
首發與r
後面跟着一個數字和hide()
他們:
$('div:regex(id, ^r[0-9]+)').hide();
請不要發佈代碼片段作爲答案。解釋你是如何到達這個解決方案的,以及它是如何工作的。現在,我已經低估了這一點。 –
@KevinVermeer我認爲這是相當自我解釋。如果您認爲他們不清楚,您可以隨時編輯問題和答案。我不確定究竟應該添加什麼;以防萬一。 – fardjad
跟進interstellar_coder的建議,你會做什麼這樣
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>
隱藏他們都
JQUERY:
$("#hide-them").click(function() {
$(".hide-me").hide();
});
要遍歷您需要.each
和隱藏使用.hide
應用共享類的工作,但你可能只是做一個包含搜索編號:
$("div[id^='r']").hide();
只要給所有的人一個班,然後使用類選擇隱藏起來。 –
我不認爲正則表達式解決方案是一個很好的方法,它更難以編碼,閱讀和維護。使用類和選擇器,這就是他們在那裏。 – Jason