JQuery - Split String(For Each)

时间:2015-09-17 08:28:07

标签: jquery arrays string foreach split

下面的当前代码 - 我必须复制并粘贴每个arr[0], arr[1], arr[2]。但是,将来我可能有更多或更少的数组选项,并希望代码自动更新,而无需更改我的代码。

基本上,我想创建一个" for-each"每个列表项的情况:

<li><i class='icon-check twentytwo color'></i><span>" + arr + "</span></li>

当前代码:

var data = $('.availability').text();
var arr = data.split('•');
$('.availability').html("<li><i class='icon-check twentytwo color'></i><span>" + arr[0] + "</span></li><li><i class='icon-check twentytwo color'></i><span>" + arr[1] + "</span></li><li><i class='icon-check twentytwo color'></i><span>" + arr[2] + "</span></li>");

ANSWER =所有这些都适用于各种情况。我根据以下事实选择了我的答案:我使用了一个把手模板,使得这些代码片段中的一些不能用于我的项目。

4 个答案:

答案 0 :(得分:1)

您可以使用 join()

&#13;
&#13;
var data = $('.availability').text();
var arr = data.split('•');
$('.availability').html("<li><i class='icon-check twentytwo color'></i><span>" 
                        + arr.join("</span></li><li><i class='icon-check twentytwo color'></i><span>") 
                        + "</span></li>");
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用$.each函数循环播放数组。

但是,您应该html()项目,而不是使用覆盖HTML的append()

var data = $('.availability').text();
var arr = data.split('•');
$.each( arr, function( index, value ) {
    $('.availability').append("<li><i class='icon-check twentytwo color'></i><span>" + value + "</span></li>");
});

答案 2 :(得分:0)

试试这个

 var data = $('.availability').text();
    var arr = data.split('•');
    for(var i=0; i< arr.length; i++){
     $('.availability').append("<li><i class='icon-check twentytwo color'></i><span>" + arr[i] + "</span></li>");
    }

答案 3 :(得分:0)

试试这个:

var data = $('.availability').text();
var arr = data.split('•');
var htm;
$.each(arr, function(i, obj){
   htm += $('<li>', {
       html:"<i class='icon-check twentytwo color'></i><span>"+ arr[i] + "</span>"
   })
})

$('.availability').html(htm);