JQuery为类的每个元素循环一个slice(),split()和wrapped数组....

时间:2014-10-22 10:08:46

标签: jquery split each slice

我很确定我接近这个,但我似乎无法做到这一点。我为列出的每个事件动态获取以下字符串,始终采用相同的格式。基本上需要为每个条目的日期分割(),并仅返回时间,分别是','并以跨度呈现 这就是我所拥有的:

<div class="date">Di 22.10.2014 um 14:00, 18:00</div>
<div class="date">Di 22.10.2014 um 14:00, 18:00, 20:00 </div>

var data =$('.date').html().slice(17);
var arr = data.split(',');
$(".date").empty();
$.each(arr, function(i, v) { 
$('.date').append($("<span>").html(v));
}); 

....到目前为止很好......这http://jsfiddle.net/MealaBmay/K3D6d/1088/正在发挥作用,但是 我已经意识到了每一个“日期”。最终得到了相同的内容。我似乎无法将此脚本转换为每个... 我看了Splitting text and wrapping each of the words in elements in jQuery 并试图使用相同的方法....但叹息继续画一个空白......那里有任何助手? thx

1 个答案:

答案 0 :(得分:1)

使用带有回调函数的.text()的setter版本

&#13;
&#13;
$('.date').each(function(i, text) {
  var $this = $(this),
    data = $this.text().slice(17);
  var arr = data.split(',');
  $this.empty();
  $.each(arr, function(i, v) {
    $this.append($("<span>").html(v));
  });
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="date">Di 22.10.2014 um 14:00, 18:00</div>
<div class="date">Di 22.10.2014 um 14:00, 18:00, 20:00</div>
&#13;
&#13;
&#13;


可能是做同样的另一种方式

&#13;
&#13;
$('.date').html(function(i, html) {
  return $.map(html.trim().substring(17).split(','), function(item) {
    return '<span>' + item + '</span>'
  }).join('')
})
&#13;
.date span {
  border: 1px solid lightgrey;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="date">Di 22.10.2014 um 14:00, 18:00</div>
<div class="date">Di 22.10.2014 um 14:00, 18:00, 20:00</div>
&#13;
&#13;
&#13;