LoginSignup
6
6

More than 5 years have passed since last update.

HTMLの中の文字列を、NGワードとマッチさせてjQueryで要素を消す

Last updated at Posted at 2015-02-23
やりたかったのは、liの中の要素に、<a>やら<p>やら<h3>やらがあり、その中にNGワードで指定したものが含まれていた場合に、li要素を消すというもの。1時間位試行錯誤したので、メモっておこうと思う。(jQueryをあまりしらないので、試行錯誤です)

改良版

kazu56さんからのご指摘でもっとシンプルに書けますよ!とのご連絡を頂戴しております。(こっちのがいいですね)

var ngword = ['エロ','本番','胸','ビッチ','エッチ'];

$.each(ngword,function(index,value){
  var selector = ".list li:contains('" + value  + "')";
  $(selector).remove();
});

対象のHTML

<div class="list">

<li>
    <p>エロい</p>
    <img src="エロ画像">
</li>

<li>
    <a>胸が大きい</a>
    <img src="胸画像">
</li>

<li>
    <h3>ビッチが沢山</h3>
    <img src="ビッチ画像">
</li>


</div>



<script>

    var ngword = ['エロ','本番','胸','ビッチ','エッチ']; //NGワードをここに指定する

    var i = 0;

    $('.list li').each(function() { // list classの中のliを選択
        var txt = $(this).html(); // 対象の要素のHTMLを取得
        for ( i = 0  ; i < ngword.length ; i ++ ) { //ngwordの数だけ繰り返す
            if ( txt.indexOf(ngword[i]) != -1) {
                $(this).remove(); //NGワードにマッチした時に li 要素を消す
            }
        }
    });


</script>

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6