jquery - 如何使用 jQuery 更新元素的文本节点?

标签 jquery html


我的代码

我有这个html

​<a href="#">
    <i>[please keep this]</i>
    Some Text To Update
</a>​​​​​​​​​​​​​​​​​​​​​​​

还有这个 jQuery

$('a').click(function(){
    $(this).text('Updated Text');
    return false;        
});​

问题

当点击链接时,我得到:

<a href="#">Updated Text</a>

期望的结果

我想保留 <i>元素并得到这个:

<a href="#"><i>[please keep this]</i> Updated Text</a>

无法修改 HTML


play along on jsFiddle

最佳答案

最好的方法如下:

添加跨度:

<a href="#">
    <i>[please keep this]</i>
    <span class="replace">Some Text To Update</span>
</a>​​​​​​​​​​​​​​​​​​​​​​​


$('a').click(function(){
    $('.replace', this).text('Updated Text');
    return false;
});​

span内添加您的文本,然后更新您的span文本。

Demo

不修改html:

$('a').click(function(){
    $(this).html(function(i, text) {
        return text.substr(0, text.lastIndexOf('>') + 1) + 'Updated Text';
    });
    return false;
});

Demo


$('a').click(function(){
    var $keep = $('i', this);
    $(this).empty().append($keep).append('Updated Text');
});

Demo

关于jquery - 如何使用 jQuery 更新元素的文本节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11788879/

相关文章:

html - CSS 帮助 : active button not changing style

javascript - 免费的 JQuery 表格排序插件(带搜索功能)

html - Chrome/Firefox 布局很棒 - Safari 出现故障 - 没有使用 float

Javascript window.onload 不等待 DOM 加载

javascript - jQuery ajaxForm beforeSubmit 在 document.ready 上触发

javascript - 使用数组中的多个值范围填充 html 表

javascript - 这是删除 <div> 的正确 jQuery 吗?

javascript - 将 div 移动到标题顶部

javascript - visjs.org 库 : display only event dates

html - 页脚移动到页面顶部?