【发布时间】:2016-02-12 13:08:44
【问题描述】:
我有一个由 span 开始和结束标记组成的输入,如果 li 开始和结束标记位于中间,我想用一些东西替换 li 标记。我试过为它写正则表达式,你们可以在这里查看: https://regex101.com/r/vI1sY8/1 但它也替换了位于 span 标签之外的 li 标签。
我的输入示例:
lol <span style="background-color:limegreen;"> <br /> <li> this </li>
</span> <br /> this is something <li"> This is new </li>
我的输出应该是:
lol <span style="background-color:limegreen;"> <br /> <li style="background-color:limegreen;"> this </li>
</span> <br /> this is something <li"> This is new </li>
【问题讨论】:
-
$('span li').css('background-color','limegreen');或$('span li').attr('style','background-color:limegreen;'); -
如果他想更改html本身,JS如何帮助他?
-
你应该使用 DOM 解析器来完成这样的任务,正则表达式在解析 HTML 时是出了名的不可靠。另外,请注意,HTML 中不允许在
<span>中使用<li>标记。 -
@GeraldSchneider:不确定是否适用于所有 HTML 版本。