Javascript / jquery - 在可变位置添加要列出的类

时间:2012-10-01 12:46:32

标签: javascript jquery

我有一个包含项目编号的变量......就像这样:

myvariable = '3'; //Note: This is currently a string so it might need converting?

然后我有填充listview的代码:

$('#listview').live("pageinit", function(){
$.getJSON("myjson.json", function(data){
    $.each(data.unis, function(index, value){


        $('<li><a class="listitem" href="#">' + value.name + '</a></li>').insertAfter('#' + value.sortLetter);

        $('#' + value.sortLetter).show();

    });

    $("#listview").listview("refresh");


});

以上所有方法都可以。

现在,我需要做的是将一个类插入到myvariable值位置的项目中。

因此,如果myvariable为3,那么listview将如下所示:

<ul>
<li><a class="listitem" href="#">' + value.name + '</a></li>
<li><a class="listitem" href="#">' + value.name + '</a></li>
<li><a class="listitem AddedClassHere" href="#">' + value.name + '</a></li>
</ul>

如果myvariable是1那么:

<ul>
<li><a class="listitem AddedClassHere" href="#">' + value.name + '</a></li>
<li><a class="listitem" href="#">' + value.name + '</a></li>
<li><a class="listitem" href="#">' + value.name + '</a></li>
</ul>

依旧......

我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您可以使用:eq()选择器,请注意:eq()从零开始。

$('ul li:eq("'+ (myvariable-1) +'") a').addClass('class');

或者:

$('ul li').eq(myvariable-1).find('a').addClass('class');

答案 1 :(得分:2)

一种方法是为每个项动态构建类列表,如果索引与您在变量中指定的幻数匹配,则可选择添加类。将您的代码更改为:

$.each(data.unis, function(index, value){
    var classList = 'listItem';
    if(index == (myvariable - 1)) {
        classList += ' addedClass';
    }
    $('<li><a class="' + classList + '" href="#">' + value.name + '</a></li>').insertAfter('#' + value.sortLetter);

    $('#' + value.sortLetter).show();
});

答案 2 :(得分:1)

还有一个eq()方法:

$('ul li').eq(myvariable - 1).find("a").addClass('class');

se http://api.jquery.com/eq-selector/了解更多文档。

注意:注意你是否在同一页面上使用多个(或嵌套的)ul,那么你需要一个不同的方法......