我很确定我接近这个,但我似乎无法做到这一点。我为列出的每个事件动态获取以下字符串,始终采用相同的格式。基本上需要为每个条目的日期分割(),并仅返回时间,分别是','并以跨度呈现 这就是我所拥有的:
<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
答案 0 :(得分:1)
使用带有回调函数的.text()的setter版本
$('.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;
可能是做同样的另一种方式
$('.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;