我无法弄清楚如何将元素添加到HTML字符串中。我尝试使用.nextUntil(),然后我意识到我不能用那个,只有元素来定位特定的字符。然后我研究了解析和正则表达式,但我仍然没有抓住如何实现以下内容。我有一个变量&item 39选项'需要转换为html。
原始
itemOptions = '*First Item|2000*Second Item|1500*Third Item|700';
我需要的是什么:
itemOptions = '<li>First Item - <span>$2000</span></li><li>Second Item - <span>$1500</span></li><li>Third Item - <span>$700</span></li>';
$('ul.item-options').html(itemOptions );
我很欣赏你如何转换它的解释。谢谢!
答案 0 :(得分:2)
使用像
这样的正则表达式/\*([^|*]+)\|([^|*]+)(?=\*|$)/g
并替换为
<li>$1<span>$2</span></li>
应该这样做。
它匹配最初的星号,将所有内容捕获到|
组1.匹配|
并将其余部分捕获到第2组,直到另一个星号,或使用正数捕获行尾先行。
itemOptions = '*First Item|2000*Second Item|1500*Third Item|700';
itemOptions = itemOptions.replace(/\*([^|*]+)\|([^|*]+)(?=\*|$)/g, function(a,b,c) {
return '<li>' + b + ' <span style="color:red">' + c + '</span></li>';
});
document.write(itemOptions);
&#13;