innerHTML 内に span タグのみを追加する場合は、すべてのスタイルを維持する必要があります (重要なサブ要素がない限り)。
仮定して:
- div にサブ要素がありません
- テキスト コンテンツ自体は html セーフです
- ラップしたい文字のインデックスを見つける方法があります
(あなたの例ではすべての仮定が正しいようです)
元の文字列を変換して .html() で再注入できます
気になるインデックスをどのように選択するかはわかりませんが、それはあなたに任せますが、繰り返しますが、前述の仮定の範囲内で、次のようにすることができます。
var my_div = $('some_selector_goes_here');
var original = my_div.text();
var indexes = find_the_indexes(original);
var updated = '', cur_idx = 0;
for (var idx=0; idx<indexes.length; idx++)
{
var index = indexes[idx];
updated += original.substr(cur_idx, index);
updated += '<span>' + original.charAt(index) + '</span>';
cur_idx = index + 1;
}
updated += original.substr(cur_idx);
my_div.html(updated);