【发布时间】:2013-06-21 19:42:16
【问题描述】:
我有以下 DOM 元素:
<div id="container">
<ul class="block-grid three-up">
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
</ul>
</div>
我想要做的是让 ul 有一个类来说明 li 被悬停在上面。到目前为止,我有:
$('#container li').hover(function() {
i = $(this).index() + 1;
// need function to remove all classes that start with n- here
$('#container ul').addClass('n-'+i);
$(this).addClass('active');
}, function() {
// need function to remove all classes that start with n- here
$(this).removeClass('active');
}
);
我需要找到一种方法来删除所有以 n- 开头的类,因为现在编写代码,它只是向 ul 添加和添加类。我不能简单地删除所有其他类,因为出于结构原因我需要其他类。而且我知道没有办法在 removeClasses 中使用通配符。我可以在这里使用某种正则表达式吗?
【问题讨论】:
-
你为什么首先使用
n-类?它们是你的元素吗?您不必使用类对它们进行索引...如果您必须,那么使用 for 循环有什么问题? -
您需要重新考虑这一点。为什么要添加带有递增数字的类来开始它,这没有意义。
-
@adeneo 这不是一个递增的数字。这只是索引+1,因为我不希望索引从 0 开始。因此,当您将鼠标悬停在第二个元素上时,我希望 ul 具有 n-2 作为类。
标签: jquery