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 )
}
}
ファンクション・ハイライト
範囲=ドキュメント.パラメータ
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 )
}
))>
));
私のシナリオは非常に私はデータベースから単語の位置を取得しているページ上のハイライト単語や文字列をロードしているが、最初の単語のすべての時間ごとにすべてのタグが追加されました.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);
}}
))>
));
Reference
この問題について(getrangeat毎回同じ範囲を作成するたびに?), 我々は、より多くの情報をここで見つけました https://dev.to/namitsi82832881/every-time-getrangeat-creates-the-same-range-24lcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol