Разделить строку и обернуть ее в тэг
привет всем.
что имеется: <div class="title">это строка номер | один.</div> <div class="title">это строка номер | два.</div> <div class="title">это строка номер | три.</div> что нужно: то, что идет после символа | обернуть в тэг <span> в итоге должно получиться так: <div class="title">это строка номер <span>один.</span></div> <div class="title">это строка номер <span>два.</span></div> <div class="title">это строка номер <span>три.</span></div> что я делаю: var title = $('.title:contains("|")'); var txt = title.html().split("|"); var output = "" for(var x=0;x<txt.length;x++) { output = output + "<span>"+txt[x]+"</span>" } title.html(output); что у меня получается: 1) <div class="title">это строка номер <span>один.</span></div> 2) <div class="title">это строка номер <span>один.</span></div> 3) <div class="title">это строка номер <span>один.</span></div> Объясните, пожалуйста, где ошибка? Спасибо за помощь заранее |
$('.title:contains("|")').each(function () { this.innerHTML = this.innerHTML.replace(/\|(.*)/, '<span>$1</span>'); }); |
var title = $('.title:contains("|")'); // присваивает title массив элементов с классом title, внутри которых есть символ | (три элемента) var txt = title.html().split("|"); // присваивает txt другой массив, который создается из строки, нахожящейся в первом элементе массива title (два элемента) var output = "" for(var x=0;x<txt.length;x++) {//цикл отрабатывает два раза, т.к. в массиве txt два элемента: "это строка номер" и "один." output = output + "<span>"+txt[x]+"</span>"//присваивает переменной output значение "<div class="title">это строка номер <span>один.</span></div>" } title.html(output);//меняет внутри всех элементов массива title код на содержимое переменной output если вам надо было найти косяк, а не решение.. |
Octane, Viral, спасибо большое, парни! теперь разобрался.
|
Часовой пояс GMT +3, время: 15:59. |