我需要将以下句子的第一行包装在内:
<span class="span">This is the first line <br> this should be the second line</span>
<span class="span">This is another first line <br> this should be another second line</span>
使用jquery:
$('.span:first-line').wrap('<em></em>');
我期待结果:
<span class="span"><em>This is the first line </em><br> this should be the second line</span>
CSS:
.span {
display:block;
white-space:pre;
}
但无论IE似乎都没有认出它。
循环每一个意外的结果:
$('.span:first-line').each(function() {
$(this).wrap('<em></em>');
});
结果不佳:
<em><span class="span">.................</span></em>
同时
$('.span').each(function() {
$(this).filter(':first-line').wrap('<em></em>');
});
有没有人知道用换行符(<br>
)空格包围第一行的其他方法,以使其适用于IE8?
由于
答案 0 :(得分:2)
试试这个:
$(".span").each(function(){
var split = $(this).html().split(/<br.*?>/gi);
split[0] = "<em>" + split[0] + "</em>";
$(this).html(split.join("<br>"));
});
已更新为使用正则表达式而不是<br>
现在也可以使用<br />
进行拆分。
答案 1 :(得分:1)
var val = $('.span').eq(0).val();
var splitted = val.split('<br>');
var newtext = '<em>'+splitted +'</em><br></br>'+splitted[1];
$('.span').eq(0).html(newtext);