将逗号分隔的列表转换为无序列表

3
我有一个简单的列表,由复选框列表生成。生成的代码就是这样的:

white,blue,red,black

我需要使用jQuery将每个元素包装在
  • 标签中。您如何遍历列表并使用逗号作为分隔符?我还需要删除逗号。有时只有1项,有时有3项等等。
    谢谢!
  • 4个回答

    10
    <script type="text/javascript">
        var mystring = 'white,blue,red,black';
        mystring = '<ul><li>' + mystring.replace(/,/gi,'</li><li>') + '</li></ul>';
        document.write(mystring);
    </script>
    

    输出:

    <ul>
    <li>white</li>
    <li>blue</li>
    <li>red</li>
    <li>black</li>
    </ul>
    

    这段代码完全没有使用jquery :)


    字符串中的“gi”有什么作用?如果这是一个愚蠢的问题,我很抱歉。我对JavaScript还不太熟悉。 - Mike Muller
    @mmsa g 代表“全局”,如果没有它,你只会替换第一个逗号。i 代表“不区分大小写”,在你的方法中这是可选的,因为没有大写逗号。 - Ben

    4
    var el = $('#elementSelector');
    var values = el.html().split(',');
    el.html('<ul>' + $.map(values, function(v) { 
      return '<li>' + v + '</li>';
    }).join('') + '</ul>');
    

    @wombleton +1,不使用String#split()而是使用正则表达式。 - maček

    1

    哈哈,比omfgroflmao短一个字符 :D 而且没有jQuery的好处

    mystring = '<ul>' + mystring.replace(/(\w+),?/g, '<li>$1</li>') + '</ul>';
    

    使用jQuery的好处,再减少一个字符.. 哈哈

    myobject = $('<ul>').append(mystring.replace(/(\w+),?/g, '<li>$1</li>'));
    

    0
    var final_string = "<ul><li>" + myString.replace(/,/gi, '</li><li>') + "</li></ul>";
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接