将Jquery文本替换为<a><span><span>text</span></span></a>

时间:2016-02-01 12:49:28

标签: jquery html dom text replace

我尝试将文本更改为此代码:

<li>
    <a id="toggle-edition" href="#">
        <span class="glyphicon glyphicon-pencil"></span> Edit page
    </a>
</li>

使用

$("#toggle-edition").text('Save Page')

我的范围被移除:(

6 个答案:

答案 0 :(得分:1)

我的范围已删除是您覆盖anchor元素内容时的预期行为。

使用以下代码:

$("#toggle-edition > span")[0].nextSibling.nodeValue = 'Save Page';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="toggle-edition" href="#">
        <span class="glyphicon glyphicon-pencil"></span> Edit page
    </a>

答案 1 :(得分:1)

jQuery不适用于文本/注释节点。使用相关的普通js方法,例如:

$("#toggle-edition > span")[0].nextSibling.nodeValue = "Save Page";

更多jQuery之类的,可能是:

$("#toggle-edition").contents().filter(function(){
   return this.nodeType === 3 && $(this.previousSibling).hasClass('glyphicon');
}).replaceWith('Save Page');

答案 2 :(得分:0)

你可以尝试:

$("#toggle-edition").text('<span class="glyphicon glyphicon-pencil"></span> Save Page');

答案 3 :(得分:0)

尝试这个

$(document).ready(function () {
            var gettextr = $("#toggle-edition");
            var oldVal = gettextr.text();
            var NewStr = $(gettextr).html().replace($.trim(oldVal), 'Save Page');
            $(gettextr).html(NewStr);
        });

答案 4 :(得分:0)

只需重置html内容

memcpy(buffer, (char *) &message.udp_eid, sizeof(unsigned int));

因此您不会替换元素范围,而是在此span元素新文本

之后插入

看这里的工作代码: https://plnkr.co/edit/lAFCfVkN2DsvGA0GQmvn?p=preview

答案 5 :(得分:0)

用span和Id包装文本。因此,您可以使用$("#SpanID").html('Save page')更改文本而不删除上一个Span

<a id="toggle-edition" href="#">
    <span class="glyphicon glyphicon-pencil"></span>
<span id="SpanID"> Edit page </span> </a>