jQueryセレクション内の一連のトークン範囲を範囲範囲のセットに変換するにはどうすればよいですか?
たとえば、私はこれを持っています:
<div class="test-input">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas
convallis dui id erat pellentesque et rhoncus nunc semper. Suspendisse
malesuada {hendrerit velit nec }tristique. Aliq{uam gravida mauris at
ligula venenatis rhoncus. Suspendisse inter}dum, nisi nec consectetur
pulvinar, lorem augue ornare felis, vel lacinia erat nibh in ve{lit.
</p>
<p>
Hendr}erit, felis ac fringilla lobortis, massa ligula aliquet justo, sit
amet tincidunt enim quam {sollicitudin} nisi. Maecenas ipsum augue,
commodo sit amet aliquet ut, laoreet ut nunc. Vestibulum ante ipsum
primis in {fauc}ibus orci luctus et ultrices posuere cubilia Curae;
Pellentesque tincidunt eros quis tellus laoreet ac dignissim turpis
luctus. Integer nunc est, {pulvinar ac tempor ac, pretium ut odio.
</p>
<p>
Pellentesque in arcu sit amet} odio scelerisque tincidunt. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi
tristique senectus et netus et malesuada fames ac turpis egestas.
</p>
</div>
{
そして、テキストを範囲内と範囲内に変換したい}
(そしてトークンを削除したい)。
私はこれを使ってみました:
function tokensToRanges(element) {
element = $(element);
var node = element.get(0);
var ranges = [];
do {
var text = $(node).text(),
start = text.indexOf('{'),
end = text.indexOf('}') - 1,
input = null;
input = node.innerHTML.replace('{', '').replace('}', '');
element.html(input);
var range = rangy.createRange();
range.selectCharacters(node, start, end);
ranges.push(range);
} while ($(node).text().indexOf('{') != -1);
return ranges;
}
しかし、範囲が正しくありません。selectCharacters
メソッドは空白を無視すると思います。
また、TextRangeModule
可能であれば使用しないことをお勧めします。