2013年2月12日火曜日

jQuery plugin .texts() 1.1 リリースしました。

jQuery 1.9で .texts()が動作しない事に気がついたので修正及びテキストを取得する範囲がおかしかった為修正しました。

修正箇所としては jQuery 1.9 で動作の変更された .replaceWith の対策を施しました。

ポイント1

一つ目に行った事としては replceWith をして文字列を変更すると変更されない様なので、一度要素を作ってしまい、 それらの要素を insertAfter して元の要素を remove してしまう方法です。

コード的には以下の様な感じでしょうか。

以前の方法
$(this).replaceWith(text.replace(/([hoge])/g,"<span>$1</span>"));
改善方法
text = text.replace(/([hoge])/g,"<span>$1</span>");
var es = $.parseHTML(text);
$(this).insertAfter(es);
$(this).remove();

これにより、置換えした物を一度挿入して元の要素を削除する形式へと変更できています。