0

私はいくつかのhtmlとテキストを含むdivを持っています(htmlは動的に追加されます)構造は次のようになります

    <div id="contentContainer">
&nbsp; <span>ProductA</span> ; <span>ProductB</span>; prod
</div> 

送信ボタンのクリック時に、div contentContainer の内部 html から最後の不完全なテキスト (prod) を削除したい

このために、私は正規表現を使用してい ましたreturnText.replace(/\w+$/, ''); テキストを「;」の最後のインデックスにトリミングできないため、正常に機能します

しかし問題は、正規表現が失敗する可能性があるため、ユーザーが不完全なテキストにいくつかの特別な文字を入れるときです

最後に追加されたテキストを div の内側の html にトリムする解決策はありますか、またはテキストを最後の html タグにトリムして配置できますか ; その後、

解決策を提案してください

4

2 に答える 2

1

ソリューションは、DIV内の最後のDOMノードを調べます。テキストノードの場合は、テキストをセミコロンに変更します。

var lastNode = $('#contentContainer').contents().last()[0]

if (lastNode.nodeType == 3) {
    lastNode.textContent=';'
}

デモ: http: //jsfiddle.net/EhcLh/

于 2012-04-15T12:39:38.237 に答える