【发布时间】:2019-05-11 05:32:29
【问题描述】:
如何避免在 Jquery 中使用 For / each 重复以下代码行?
$('.slider__section:nth-child(1)').hover(function(){
$('.slider__description').css("visibility", "hidden");
$('.slider__section:nth-child(1) .slider__description').css("visibility", "visible");
}, function(){
$('.slider__description').css("visibility", "visible");
});
HTML:
<div class="slider">
<div class="slider__section">
<div class="slider__description">1</div>
<div>
<div class="slider__section">
<div class="slider__description">2</div>
<div>
<div class="slider__section">
<div class="slider__description">3</div>
<div>
<div class="slider__section">
<div class="slider__description">4</div>
<div>
<div class="slider__section">
<div class="slider__description">5</div>
<div>
<div class="slider__section">
<div class="slider__description">6</div>
<div>
<section class="fondo-slider"></section>
</div>
我想将此应用于 6 个元素,但我不想重复此代码 尝试这样做,但它不起作用
function ocultarDescription() {
$('.slider__description').css("visibility", "hidden");
$('.slider__section:nth-child('+i+').slider__description').css("visibility", "visible");
}
function MostrarDescription() {
$('.slider__description').css("visibility", "visible");
}
for (var i = 1; i < 6; i++) {
$('slider__section:nth-child('+i+')').hover(ocultarDescription, MostrarDescription);
}
我要重复6次,另外nth-child也会变 我等待你的帮助。谢谢
【问题讨论】:
-
请也向我们展示您的 HTML 代码。你可能根本不需要循环。
-
而不是使用
nth:child,您可以使用jQuery.each,您可以从下面的链接中找到更多详细信息。 api.jquery.com/each -
请更具体地说明您要实现的目标 - 您是将其应用于所有
.slider_section-还是仅应用于一些?从表面上看,您不需要循环,如果有 5 个元素,则只需$(".slider_section-pc").hover(...。如果超过 5 个并且您只想要前 5 个,那么您可以使用$(".slider_section-pc:nth-child(-n+5)").hover(...。鉴于目前提供的信息,这些都不能保证“循环”。 -
另外,1 到 :nth-child 是基于 1 的跨度>
-
我已经更新了我的代码,请帮助我
标签: jquery loops for-loop css-selectors