如何获得文字后?

时间:2011-11-22 14:31:40

标签: jquery html

我有以下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

6 个答案:

答案 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);

小提琴:http://jsfiddle.net/maniator/Cba4m/3/

答案 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);

http://jsfiddle.net/vVHwX/1/

答案 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"]

jsFiddle here

编辑:不知道为什么.map()得不到爱......这就是它的制作方式。