嗨,我想隐藏很多元素。我是否需要单独隐藏每个或可以使用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