在可变位置添加要列出的类

时间:2012-09-29 15:14:42

标签: javascript jquery

我有一个表示列表中项目的变量集。

我也有名单:

<ul>
    <li class="mylist"><a href="#">Item 1</a></li>
    <li class="mylist"><a href="#">Item 2</a></li>
    <li class="mylist"><a href="#">Item 3</a></li>
    <li class="mylist"><a href="#">Item 4</a></li>
    <li class="mylist"><a href="#">Item 5</a></li>
    <li class="mylist"><a href="#">Item 6</a></li>
</ul>

我需要做的是将css类添加到变量值位置的列表中。

例如:

If myVariable = '1' then list will look like this:

<ul>
    <li class="mylist"><a href="#" class="myclass">Item 1</a></li>
    <li class="mylist"><a href="#">Item 2</a></li>
    <li class="mylist"><a href="#">Item 3</a></li>
    <li class="mylist"><a href="#">Item 4</a></li>
    <li class="mylist"><a href="#">Item 5</a></li>
    <li class="mylist"><a href="#">Item 6</a></li>
</ul>

If myVariable = '3' then list will look like this:

<ul>
    <li class="mylist"><a href="#">Item 1</a></li>
    <li class="mylist"><a href="#">Item 2</a></li>
    <li class="mylist"><a href="#" class="myclass">Item 3</a></li>
    <li class="mylist"><a href="#">Item 4</a></li>
    <li class="mylist"><a href="#">Item 5</a></li>
    <li class="mylist"><a href="#">Item 6</a></li>
</ul>

等等。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用jQuery中的eq方法按索引选择元素:

const myVariable = 3;
$('.mylist').eq(myVariable - 1).find('a').addClass('myClass');

请注意eq假设您的索引是从0开始的(这意味着第一个是0而不是1)。这就是为什么它myVariable - 1

答案 1 :(得分:2)

var value = 3;
$('ul li.mylist a').filter(function () {

    return $(this).text() === 'Item ' + value;

}).addClass('myclass');

答案 2 :(得分:1)

$("li.mylist").eq(position -1).find("a").addClass("myClass")