0
<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 を使用して最後の文を削除する方法を考え出そうとしています。したがって、2番目以降のすべて<br>。その文のテキストは潜在的に何でもある可能性があるため、 aを実行しても機能しfind()ません。

4

2 に答える 2

6

あなたはこれを行うことができます:

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

これは、 を書く他の方法をサポートします<br>。例えば<BR/>、 

いくつかの説明:

  • jQuery のhtmlコールバックは 2 つの引数を取ります。最初の引数 (インデックス) は必要ありません。
  • split<br>は、 (またはその変形) を区切り記号として使用して、文字列から配列を作成します。
  • スライスは、最後の要素を除いた配列のコピーを返します
  • joinは配列から文字列を作成し、必要な<br>
于 2013-05-06T18:11:42.863 に答える
2

Assuming that last sentence doesn't contain any HTML, a mixture of vanilla JS and jQuery may work best here:

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/

于 2013-05-06T18:16:01.090 に答える