2013-05-07 93 views
2

我有我使用創建一個動態菜單如何添加文本跨越的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); 
    } 

我已經是當我嘗試將文本添加到跨度的問題,這個jQuery代碼

$('.down').text(test); 

菜單更改任何值是最後例如,如果我的值是ABCDE 然後我所有的菜單EEEEE任何機構可以幫助我感謝

+0

你設置文本與類'.down',不只是一個所有元素。 – 2013-05-07 19:27:28

+1

爲什麼不把它添加到你的第一個追加? '.append('blah blah '+ test +' blah blah')'? – Josh 2013-05-07 19:28:31

+0

謝謝穆罕默德,但是當我使用append時,菜單顯示abcde bcde cde de e – user1766952 2013-05-07 19:30:32

回答

2

你爲什麼不直接做樣T他:

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>'); 
} 
7

您可以嘗試使用此只選擇最後.down而不是所有:

$('.down:last').text(test); 
2

$('.down')選擇與類down

每一個元素如果你想選擇器選擇最後創建的.down使用此:

$('.down:last').text(test); 
0
$('.down').each(function(){ 
    $(this).text(test); 
}); 
0

我假設你爲每個菜單項多次調用createList(),但是這個函數創建一個叫做「down」的類的一組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"); 
});