2016-12-06 11 views
1

私は以下の機能を作成しました。特定のWordのボディを検索し、結果が存在するかどうかを取得できます。しかし、それが存在すれば、どのようにしてその特定のオブジェクトを見つけ出し、それと絡み合うのですか?この回答のためにオブジェクト内のテキストに基づいて特定のオブジェクトを取得する

(function ($) { 
 

 
    $.fn.WordBreaker = function (x) { 
 

 
     return this.each(function() { 
 

 
      var wrapper = $(this); 
 

 
      var xx = $.extend({ 
 
       words: "", 
 
      }, x || {}); 
 

 
      function initialized() { 
 
       xx.words.forEach(function (x, y) { 
 
        var lw, rw; 
 
        lw = x.toString().split(",")[0]; 
 
        rw = x.toString().split(",")[1]; 
 

 
        if ($("body:contains('" + lw + "')").length > 0) { 
 
         alert("I found an object that contains: " + lw + " , but how do i tager that object?") 
 
        } 
 

 
       }, xx.words) 
 
      } 
 
      initialized(); 
 
     }); 
 
    } 
 

 
}(jQuery)); 
 

 
var items = [ 
 
["THISISALONGTEXTTHATIWANTTOBREAK", "THIS-IS-A-LONG-TEXT-THAT-I-WANT-TO-BREAK"] 
 
]; 
 
$('.col-md-5').WordBreaker({ words: items })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row"> 
 
      <div class="col-md-5" style="background: #00ffff"> 
 
       <h1>THISISALONGTEXTTHATIWANTTOBREAK</h1> 
 
      </div> 
 
     </div>

+0

その特定のオブジェクトは何だろうか?ディビジョン/スパン/リンク/段落/ ...?あなたがそれがdiv内にのみ存在することを知っていれば、すべてのdivを検索することができます:$(div).each(function(){/ * divの内容を検索* /}); – Seb

+0

それは何でもかまいません。テキストを基本的に含むことができるあらゆる種類のオブジェクト。しかし、私はそれがポイティブなように動的であることを望みます –

+0

それはイメージのaltテキストかもしれませんか?またはコメントでさえ?あなたはregexpを使ってタグのbevorを得ることができます。 (しかし、これが
であれば助けにならないでしょう。 – Seb

答えて

1

、私はUsing jQuery is there a way to find the farthest (deepest, or most nested) child element?からコードを撮影し、ここでそれを入れています。元の答えは@Methosからのものです。

(function ($) { 
 

 
    $.fn.WordBreaker = function (x) { 
 

 
     return this.each(function() { 
 

 
      var wrapper = $(this); 
 

 
      var xx = $.extend({ 
 
       words: "", 
 
      }, x || {}); 
 

 
      function initialized() { 
 
       xx.words.forEach(function (x, y) { 
 
        var lw, rw; 
 
        lw = x.toString().split(",")[0]; 
 
        rw = x.toString().split(",")[1]; 
 
        var all_matched_elements = $(":contains('" + lw + "')"); 
 
        var all_parent_elements = $(all_matched_elements).parents(); 
 
        var all_deepest_matches = $(all_matched_elements).not(all_parent_elements); 
 

 
        console.log(all_deepest_matches); // this is an object containing the deepest objects that match the search string 
 

 
       }, xx.words) 
 
      } 
 
      initialized(); 
 
     }); 
 
    } 
 

 
}(jQuery)); 
 

 
var items = [ 
 
["THISISALONGTEXTTHATIWANTTOBREAK", "THIS-IS-A-LONG-TEXT-THAT-I-WANT-TO-BREAK"] 
 
]; 
 
$('.col-md-5').WordBreaker({ words: items })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row"> 
 
      <div class="col-md-5" style="background: #00ffff"> 
 
       <h1>THISISALONGTEXTTHATIWANTTOBREAK</h1> 
 
      </div> 
 
     </div>

関連する問題