Я хочу, чтобы манипулировать DOM немного и нужна помощь.Заменить скобки, чтобы охватить Javascript
Это мой HTML-разметки:
<span class=“content“> This is my content: {#eeeeee}grey text{/#eeeeee} {#f00000}red text{/#f00000}</span>
Вот как это должно быть:
<span class="content">This is my content: <span style="color:#eeeeee;">grey text</span><span style="color:#f00000;">red text</span></span>
Скрипт должен заменить скобки с пролетами тегами, чтобы изменить цвет шрифта. Цвет должен быть тем же, что и в скобке.
Мой подход:
function regcolor(element) {
var text = element.innerText;
var matches = text.match(/\{(#[0-9A-Fa-f]{6})\}([\s\S]*)\{\/\1\}/gim);
if (matches != null) {
var arr = $(matches).map(function (i, val) {
var input = [];
var color = val.slice(1, 8);
var textf = val.slice(9, val.length - 10);
var html = "<span style=\"color: " + color + ";\">" + textf + "</span>";
input.push(html);
return input;
});
var input = $.makeArray(arr);
$(element).html(input.join(''));
};
Но это не работает очень хорошо и я не чувствую себя хорошо с кодом, это выглядит неаккуратно. И скрипт теряет содержимое, которое не находится в скобках («Это мое содержание:»).
Любой идея?
Планируете ли вы блокировать гнездовые блоки? например '{first} некоторый текст {второй} здесь {/ second} {/ first}' – TheBronx