getrangeat毎回同じ範囲を作成するたびに?

1607 ワード

私はループの範囲を作成していますが、getrangeat毎回同じ範囲を作成します.なぜそうなのか.
私のシナリオは非常に私はデータベースから単語の位置を取得しているページ上のハイライト単語や文字列をロードしているが、最初の単語のすべての時間ごとにすべてのタグが追加されました.4回のループが実行される場合のように4スパンタグは、最初の一致する単語だけを追加します.
var r =ドキュメントです.パラメータ
var s =ウィンドウ.getSelection ()
//警告( s ),
コンソール.ログ( s );
//var abc =ウィンドウgetSelection ()
var pos = 0 ;
var start , end ;
var range =[];
ファンクションディグ
$( EL ).パラメータ関数( i , e )
を返します.
//テキストノードではない
を掘る

その他
{ }
ならば
を返します.
範囲.setstart ( e , start pos )


        if (pos<end){
           if (pos+e.length>=end){
            range.setEnd(e, end-pos);
           }
        }            

        pos = pos+e.length;
    }
});  

ファンクション・ハイライト
範囲=ドキュメント.パラメータ
start = st ;
終了日時
要素を掘る
S . addrange ( range );

ドキュメント.ready ()関数
var x ;
var url =ウィンドウ.ロケーション.パス名.
var urlid = url.文字列( URL . lastIndexOf ('/')+ 1 );
アジャックス
次のように入力します.
URL :\/チェック単語'.
データ:{ urlid : urlid }
成功:関数
data . endate ()
{ }
var jsondata = x +';
var namearr = JSONデータ.split (', ');
コンソール.log (' xが' xの場合)、
コンソール.ログ(' namearr is ', namearr )
var a = nameArr[0];
var b = nameArr[1];
highlight($('.main-detail-content'), a, b);
var ra = s.getRangeAt(0);   // this line always create same range even positions are different evry time loop runs.
var newNode = document.createElement("em");
newNode.appendChild(ra.extractContents());
ra.insertNode(newNode);


))>
));