我有以下html格式,
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 3
</span>
<br>
by Ahmed 1
</td>
</tr>
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 2
</span>
<br>
by Ahmed 2
</td>
</tr>
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 3
</span>
<br>
by Ahmed 3
</td>
</tr>
如何使用jQuery在<br>
之后获取文本,即by Ahmed 1, by Ahmed 2, by Ahmed 3
答案 0 :(得分:6)
var text = [];
$('.ms-vb').each(function() {
text.push($(this).html().split('<br>')[1]);
});
答案 1 :(得分:3)
这应该有效:
var td_clone = $('.ms-vb').clone();
$('span', td_clone).remove();
alert($.trim(td_clone.text()));
小提琴:http://jsfiddle.net/maniator/Cba4m/
var all_text = '';
$('.ms-vb').each(function(){
var td_clone = $(this).clone();
$('span', td_clone).remove();
all_text += '' + $.trim(td_clone.text()) + ' ';
});
alert(all_text);
答案 2 :(得分:2)
您可以执行以下操作:
$('.ms-vb').each(function(){
var str = $(this).html();
var output = str.substr(str.indexOf("<br>") + 4);
console.log(output);
});
在这里小提琴:http://jsfiddle.net/FT3Fv/2/
我希望这有帮助!
答案 3 :(得分:0)
这样可以解决问题:
jQuery('.ms-vb').html().match(/<br>([^<]*)/)[1]
我为演示目的制作了一个jsbin:
http://jsbin.com/ifufuv/11/edit
它目前没有解析出空白,但添加它是微不足道的。
答案 4 :(得分:0)
这对我来说更有意义:
var text = $('.ms-vb').clone();
text.children('span').remove();
text.children('br').remove();
name = text.html()
alert(name);
答案 5 :(得分:0)
如果我要做克隆方法,我会这样做:
var result = $(".ms-vb").map(function() {
return $.trim($(this).clone().find("span").remove().end().text());
}).get();
或者如果我打算使用正则表达式版本,我会这样做:
var result = $(".ms-vb").map(function() {
return $(this).html().match(/<br\w*\/?>\s*(.*)\s*$/)[1];
}).get();
这两个都会返回一个字符串数组:
["by Ahmed 1", "by Ahmed 2"]
编辑:不知道为什么.map()得不到爱......这就是它的制作方式。