将UL LI列表解析为逗号分隔值

时间:2014-03-31 19:20:03

标签: javascript

我需要你的帮助,

就像现在一样,我的功能如下所示吐出我的UL LI列表:

Coffee ,Tea ,Milk

我需要将其格式化为:

Coffee,Tea,Milk

为什么要添加额外的空格?

function items_2_var() {

    var x = document.getElementById("list1").getElementsByTagName("li")

    var values = []

    for(var i=0;i < x.length; i++) {

        if (x[i].innerText.length) { values.push(x[i].innerText) }
    }

    alert(values.join(","))

}

HTML:

<div id="list1">
    <ul>
      <li>Coffee</li>
      <li>Tea</li>
      <li>Milk</li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:1)

我能够重现您描述的问题的唯一方法是,如果您最终得到的HTML呈现如下:

<div id="list1">
    <ul>
      <li>Coffee&nbsp;&nbsp;&nbsp;&nbsp;</li>
      <li>Tea&nbsp;&nbsp;</li>
      <li>Milk&nbsp;&nbsp;&nbsp;</li>
    </ul>
</div>

在这种情况下,当你加入字符串时,你会看到空格。但是,使用以下代码可以轻松解决此问题:values.push((x[i].innerText.replace(/\s/g,''))

代码:

function items_2_var() {
    var x = document.getElementById("list1").getElementsByTagName("li");
    var values = [];
    for(var i=0;i < x.length; i++) {
        if (x[i].innerText.length) { values.push((x[i].innerText.replace(/\s/g,''))); }
    }
    alert(values.join(","));
}

Full demo here.