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

Parsing a UL LI list to comma separated values

本文关键字:分隔 UL LI 列表      更新时间:2023-09-26

我需要你的帮助,

就像现在一样,我的函数吐出我的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>

我可以重现您描述的问题的唯一方法是,如果您实际上最终会得到一个呈现如下的 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(","));
}

完整演示在这里。