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

1つの方法は、アイテムごとにクラスリストを動的に作成し、インデックスが変数で指定したマジックナンバーと一致する場合は、オプションでクラスを追加することです。コードを次のように変更します。

$.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 に答える