質問: $(this).html(); $(this).html( moji.replace(/【りんご】/g,"") ); }); } ``` ご教示の程どうぞ宜しくお願い致します。
回答: ### String.prototype.slice `jQuery.prototype.text` を併用。 * テキストノード値の検索ワード以降の文字列を削除する - JSFiddle ``` 商品名【商品ID】【りんご】【春夏秋冬】りんごのジュース 全3種 商品名【商品ID】【りんご】【春夏秋冬】りんごのジュース 全3種 商品名【商品ID】【バナナ】【春夏秋冬】バナナのジュース 全3種 商品名【商品ID】【オレンジ】【春夏秋冬】オレンジのジュース 全3種 ``` ### CharacterData.prototype.deleteData `CharacterData.prototype.deleteData` は古くからある DOM API ですが、使っているコードはほとんど見かけませんね。 `NodeList.prototype.forEach` を併用。 * テキストノード値の検索ワード以降の文字列を削除する - JSFiddle * インタフェース CharacterData - Document Object Model Core Level 2 ``` document.querySelectorAll('.item').forEach(function (element) { var textNode = element.firstChild, string = textNode.data, index = string.indexOf('【りんご】'); if (index !== -1) { textNode.deleteData(index, string.length); } }); ``` ### 更新履歴 * 2017/02/28 19:37 CharacterData.prototype.deleteData のコードを追記 * 2017/02/28 20:51 jsfiddleのサンプル追加。CharacterData.prototype.deleteData のコードで検索語が見つからなかった場合に DOMException エラーが発生するバグ修正。 * 2017/02/28 21:02 String.prototype.slice のコードで検索語が見つからなかった場合にテキストノード値の末尾1文字を削ってしまうバグ修正。 Re: miconear さん