如何添加文本以跨越jQuery

时间:2013-05-07 19:25:27

标签: javascript jquery

我有这个用于创建动态菜单的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,则菜单会更改为最后一个值 然后我的所有菜单都可以帮助我了,谢谢

5 个答案:

答案 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");   
});