我有一个包含项目编号的变量......就像这样:
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>
依旧......
我怎么能这样做?
答案 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,那么你需要一个不同的方法......