我有这个用于创建动态菜单的jQuery代码
function createList(test){
alert(test);
$('#nav')
.append('<li class="top"><a href="nogo2" id="products" class="top_link"><span class="down"></span></a></li>');
$('.down').text(test);
}
我遇到的问题是当我尝试将文本添加到范围
时$('.down').text(test);
如果我的值是b c d e,则菜单会更改为最后一个值 然后我的所有菜单都可以帮助我了,谢谢
答案 0 :(得分:7)
您可以尝试使用此选项仅选择最后一个.down而不是全部:
$('.down:last').text(test);
答案 1 :(得分:2)
为什么不直接这样做:
function createList(test) {
alert(test);
$('#nav')
.append('<li class="top"><a href="nogo2" id="products" class="top_link"><span class="down">' + test + '</span></a></li>');
}
答案 2 :(得分:2)
选择器$('.down')
选择具有类down
如果要选择上次创建的.down
,请使用此选项:
$('.down:last').text(test);
答案 3 :(得分:0)
$('.down').each(function(){
$(this).text(test);
});
答案 4 :(得分:0)
我假设你为每个菜单项多次调用createList(),但是这个函数创建了一组名为“down”的同一个类的li。然后,您正在修改该类(即所有具有“向下”类的li)。你想要的是为每个li分配一个唯一的id。
这是小提琴解决方案:
http://jsfiddle.net/acturbo/vZAee/2/
这应该有效:
function createList(test){
//alert(test);
var id = "product-" + test;
console.log(test)
$('#nav')
.append('<li class="top"><a href="nogo2" id="products" class="top_link"><span id="'+ id +'"></span></a></li>');
$("#"+id).text(test);
}
$().ready(function() {
createList( "a");
createList( "b");
createList( "c");
});