删除段落的最后一行

时间:2013-05-06 18:08:19

标签: jquery

<span class="locationtitle">
    <a href="#">Test Text</a><br>
    6:00 p.m. - 12:00 a.m.<br>
    Repeat on the first Thursday
</span>

我试图用jQuery来找出删除最后一句话的方法。所以在第二个<br>之后的所有事情。该句中的文字可能是任何内容,因此find()无效。

2 个答案:

答案 0 :(得分:6)

你可以这样做:

$('.locationtitle').html(function(_,html) { 
    return html.split(/<br\s*\/?>/i).slice(0,-1).join('<br>')
});

这支持其他方式来编写<br>,例如<BR/>,您可以使用

一些解释:

  • jQuery的html回调有两个参数,我不需要第一个(索引)
  • split使用<br>(或其变体)作为分隔符从字符串生成数组
  • slice返回没有最后一个元素的数组副本
  • join从数组中返回一个字符串,插入所需的<br>

答案 1 :(得分:1)

假设最后一句话不包含任何HTML,那么vanilla JS和jQuery的混合可能在这里效果最好:

var s = $('.locationtitle')[0].childNodes; // HTML and text nodes
var last = s[s.length-1];                  // selects the last node
$(last).wrap('<span>').parent().hide();    // can only hide HTML elements

http://jsfiddle.net/mblase75/NXZpL/