javascript - 替换具有非文本节点同级的文本节点

标签 javascript jquery

对于此 HTML

<label id="nameWrapper"><input type="checkbox" name="name" />guest</label>

用其他文本替换 guest 的最短 JavaScript 代码是什么?我能想到的是,

$('#nameWrapper').contents().filter(function() {
  return this.nodeType == 3;
}).replaceWith('other text');

最佳答案

非 jQuery 方法。

示例: http://jsfiddle.net/patrick_dw/NLJ3e/

document.getElementById('nameWrapper').lastChild.data = 'new text';

或者使用 jQuery 选择器缩短它:

示例: http://jsfiddle.net/patrick_dw/NLJ3e/1/

$('#nameWrapper')[0].lastChild.data = 'new text';

或者更长一点(也更慢),但更像 jQuery:

示例: http://jsfiddle.net/patrick_dw/NLJ3e/2/

$('#nameWrapper').contents().last().replaceWith('new text');

关于javascript - 替换具有非文本节点同级的文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394457/

相关文章:

JavaScript/jQuery : How do I get an array of all attributes in an XML element?

javascript - 如何通过使用图像上的单击功能从表单中删除动态创建的元素?

javascript - 为什么这个函数只返回零和一?欧拉项目 JavaScript

javascript - backbone.js 中的安全性?

javascript - 扩展对象导致 jQuery 错误

jquery - DataTables 分页似乎不适用于服务器端数据

javascript - 游戏的拆分功能仅在第一次后有效

javascript - 使用 font Awesome 和 bootstrap 设置复选框样式

jquery - 我正在使用 javascript 选择单选按钮,但单选按钮未突出显示

javascript - 在不是我的页面上重新加载 CSS