1

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

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

然后我有填充列表视图的代码:

$('#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则列表视图将如下所示:

<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>

等等...

我怎么能这样做?

4

3 回答 3

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();
});
于 2012-10-01T13:07:13.677 回答
2

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

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

或者:

$('ul li').eq(myvariable-1).find('a').addClass('class');
于 2012-10-01T12:48:58.433 回答
1

还有一个 eq() 方法:

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

请参阅 http://api.jquery.com/eq-selector/获取更多文档。

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

于 2012-10-01T13:01:14.477 回答