Javascript jQuery中的增量2类名
我的HTML中有2个列表。在这两种情况下,列表项都以一个单词开头,以一个递增的数字结尾 我需要的是当我停留在列表一上时,更改第二个列表中的项目。让我举例说明: 将item-1>>悬停在togleClass other-item-1上时 将item-2>>悬停在togleClass other-item-2上时 我现在的代码是:Javascript jQuery中的增量2类名,javascript,jquery,Javascript,Jquery,我的HTML中有2个列表。在这两种情况下,列表项都以一个单词开头,以一个递增的数字结尾 我需要的是当我停留在列表一上时,更改第二个列表中的项目。让我举例说明: 将item-1>>悬停在togleClass other-item-1上时 将item-2>>悬停在togleClass other-item-2上时 我现在的代码是: <ul class="first-list"> <li class="link-0" title="eleme=www, elemnt2=33"
<ul class="first-list">
<li class="link-0" title="eleme=www, elemnt2=33">link 01</li>
<li class="link-1">link 02</li>
<li class="link-2">link 03</li>
</ul>
<ul class="second-list">
<li class="element-0">appartment-01</li>
<li class="element-1">appartment-02</li>
<li class="element-2">appartment-03</li>
</ul>
但我不想重复写这段代码:
$(function () {
for (var x = 0; x < 100; x++) {
$('.link-'+ x).hover(function(){
$('.element-'+ x).toggleClass('active');
});
}
});
$(函数(){
对于(变量x=0;x<100;x++){
$('.link-'+x).hover(函数(){
$('.element-'+x).toggleClass('active');
});
}
});
我知道我可以使用默认类或li选择器,但我需要使用增量类,因为当我悬停link-1时,我想显示.element-1
这不起作用,我不知道我在这里错过了什么
有人能帮我吗
Cheers不使用增量类或id属性。它们是一种反模式,导致不必要的复杂代码,很难维护——正如您在发布的JS示例中所发现的那样
根据您的需求,更好的方法是使用ul
上的类,然后按索引关联li
元素,如下所示:
$('.first list li')。悬停(函数(){
$('.second list li').eq($(this.index()).toggleClass('active');
});代码>
.active{color:#C00;}
链接01
- 链接02
- 链接03
- 01号公寓
- 2号公寓
- 03号公寓
只需使用一个通用类即可:
<ul class="first-list">
<li class="link-0 dummy-class" title="eleme=www, elemnt2=33">link 01</li>
<ul class="second-list">
<li class="element-0">appartment-01</li>
</ul>
<li class="link-1 dummy-class">link 02</li>
<ul class="second-list">
<li class="element-1">appartment-02</li>
</ul>
<li class="link-2 dummy-class">link 03</li>
<ul class="second-list">
<li class="element-0">appartment-03</li>
</ul>
</ul>
$('.dummy-class').hover(function(){$(this).find('ul').show(); });
链接01
- 公寓-01
链接02
- 公寓-02
链接03
- 公寓-03
$('.dummy class').hover(函数(){$(this.find('ul').show();});
这样,您不需要任何增量id或类谢谢,但我需要为每个元素创建不同的行为。然后请解释您的预期结果。我编辑了我的问题,因为我忘了解释问题的一个重要部分。将第二个ul嵌套到第一个ul中如何?然后使用.find()很容易选择正确的一个,并触发始终查看正确的一个。不幸的是,我不能这样做,因为开发比示例更复杂:(谢谢Rory,但我没有解释每个元素需要不同的行为是错误的。@Arol不同的行为是什么?元素是一个z索引为0的图像列表。我需要的是当你悬停时。link-0更改元素-1上的z索引,当你悬停时link-1更改元素-1上的z索引…并将此模式更改为无穷大。)在.active
CSS类中设置z-index
。
<ul class="first-list">
<li class="link-0 dummy-class" title="eleme=www, elemnt2=33">link 01</li>
<ul class="second-list">
<li class="element-0">appartment-01</li>
</ul>
<li class="link-1 dummy-class">link 02</li>
<ul class="second-list">
<li class="element-1">appartment-02</li>
</ul>
<li class="link-2 dummy-class">link 03</li>
<ul class="second-list">
<li class="element-0">appartment-03</li>
</ul>
</ul>
$('.dummy-class').hover(function(){$(this).find('ul').show(); });