我想使用jQuery将逗号分隔列表转换为无序列表。
此代码似乎有效:
var el = $('#list, #list1');
var values = el.html().split(',');
el.html('<ul>' + $.map(values, function(v) {
return '<li>' + v + '</li>';
}).join('') + '</ul>');
但是它有一个'未捕获的TypeError:无法读取属性'未定义的'split'问题,导致我的jQuery滑块不起作用。
有人可以帮我推导出这段代码以避免上述问题吗?我认为代码不够干净。
谢谢,
答案 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。