JQuery循环切片(),split()和包裹数组...对于类的每个元素
问题描述:
我很确定我接近这个,但我似乎无法做到正确。我为列出的每个事件动态获取以下字符串,始终采用相同的格式。基本上需要在拆分()关闭日期为这些条目,并只返回的时候,就是被分割()“”和跨度呈现 这是我的本钱:JQuery循环切片(),split()和包裹数组...对于类的每个元素
<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/工作,但 我意识到每个“.date”用同样的内容结束了。我似乎无法得到这个脚本转换为每个做这个... 我看着Splitting text and wrapping each of the words in elements in jQuery 并试图使用相同的方法....但叹息不断绘制一个空白......任何帮手在那里? THX
答
使用.text()二传手版本,这需要一个回调函数
$('.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));
});
})
<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>
也许另一种方式做同样的
$('.date').html(function(i, html) {
return $.map(html.trim().substring(17).split(','), function(item) {
return '<span>' + item + '</span>'
}).join('')
})
.date span {
border: 1px solid lightgrey;
}
<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>
好的......作为修剪的替代方法,这很不错,但在返回之后,我无法重新拆分和包装时间......我实际上已经设法做到的事情...... – BMay 2014-10-22 10:45:50
@ BMay你仍然可以做拆分.... – 2014-10-22 10:46:46
是的......但每个拆分后的包装....抱歉,但我卡住了,我尝试的一切(每个,以及我以前使用的方法)获取我错误'返回后无法访问' – BMay 2014-10-22 11:47:35