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

时间:2014-06-11 09:48:22

标签: javascript jquery

我想使用jQuery将逗号分隔列表转换为无序列表。

此代码似乎有效:

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

http://jsfiddle.net/v7rpL/11/

但是它有一个'未捕获的TypeError:无法读取属性'未定义的'split'问题,导致我的jQuery滑块不起作用。

有人可以帮我推导出这段代码以避免上述问题吗?我认为代码不够干净。

谢谢,

1 个答案:

答案 0 :(得分:1)

代码的第一行:

var el = $('#list, #list1');

不返回单个元素而是返回数组。

如果你看看这个updated version,我已经改变了它的一部分。

var el = $('#list, #list1');

// run through each element of the returned list
$(el).each(function(key, val) {
    var values = $(val).html().split(',');
    $(val).html('<ul>' + $.map(values, function(v) { 
      return '<li>' + v + '</li>';
    }).join('') + '</ul>');
});

另外,如果您将html更改为:

<div id="list">list 1, list 2, list 3, list 4</div>
<div id="list1">list 5, list 6, list 7, list 8</div>

使用您的脚本,您会发现它已经变坏了。

更新

保留脚本的另一个好方法是从两个div的html中生成一个字符串。感谢@Dominik的this comment