抱歉,标题很垃圾,很难解释。简化版本...我有以下标记:
<a href="http://www.someurl.com/product/collection"><span class="collection">View</span> this collection today.</a>
现在,我想要结束的是以下内容:
<a href="http://www.someurl.com/product/collection"><span class="collection">View</span> this <span class="someClass">collection</span> today.</a>
我主要可以通过以下方式做到这一点:
var $el = $('a');
var newHTML = $el.html().replace(/collection/g, '<span class="someClass">collection</span>');
$el.html(newHTML);
问题是,我们最终得到:
<a href="http://www.someurl.com/product/collection"><span class="<span class="someClass">collection</span>">View</span> this <span class="someClass">collection</span> today.</a>
这显然不是我想要的......我要不要脸?我应该以不同的方式这样做吗?
这是一个非常简单的例子,这个词可能不是“集合”,并且可能在元素文本中出现多次。我也尝试过使用 $.text() 但跨度标签被转义,正如您所期望的那样,并显示为文本“集合”。
我错过了什么?
编辑:
我编辑了这些示例,因为它们完全错误,根本不是我要问的!对不起!