首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何仅更改元素中的文本节点

如何仅更改元素中的文本节点
EN

Stack Overflow用户
提问于 2012-03-31 21:43:02
回答 8查看 37.8K关注 0票数 54

我有下一个html:

代码语言:javascript
运行
复制
<label for="user_name">
  <abbr title="required">*</abbr>
  Name
</label>

我想用jquery把标签标题改成Title。我就是这么做的

代码语言:javascript
运行
复制
$('label[for=user_name]').html('Title')

它取代了所有的内部html (包括abbr标签)

那么,最简单的替代Name的方法是什么呢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-03-31 22:15:52

如果使用contents()方法,它还将返回文本节点。由于jQuery没有文本节点方法,因此将最后一个节点转换为DOM节点

代码语言:javascript
运行
复制
$('label[for="user_name"]').contents().last()[0].textContent='Title';

演示:http://jsfiddle.net/yPAST/1/

票数 84
EN

Stack Overflow用户

发布于 2013-03-15 01:23:59

很抱歉这么晚才回复...但这里有一种仅使用jQuery实现此目的的方法:

代码语言:javascript
运行
复制
$('label').contents().last().replaceWith('Title');
票数 49
EN

Stack Overflow用户

发布于 2012-03-31 21:53:24

代码语言:javascript
运行
复制
var $label = $('label[for=user_name]');
$label.html($label.html().replace("Name", "Title"));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9956388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档