修改div中的纯文本而不修改内部跨度

时间:2011-06-10 10:57:28

标签: javascript jquery regex html

我有像

这样的div节点
<div> Text <span class="required">*</span></div>

<div> Text </div>

我想将它们转换为

<div> <a href="some target">Text</a><span class="required">*</span></div>

<div> <a href="some target">Text</a></div>

我是如何使用JavaScript(正则表达式?)或jQuery

实现这一目标的

1 个答案:

答案 0 :(得分:1)

也许有人会有更好的解决方案(我希望并期待)

如果你知道你的结构会是这样的,那么这应该可以正常工作:

$(function(){    
    var html = $('div').html();
    var fixed = html.substring(html.indexOf('<span'), html.length);
    var toWrap = html.substring(0, html.indexOf('<span'));
    var newHtml = '<a href="sometarget">'+toWrap+'</a>'+fixed;
    $('div').html(newHtml);
});

JSFiddle