首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jquery仅替换div中的文本

使用jquery仅替换div中的文本
EN

Stack Overflow用户
提问于 2012-08-08 22:54:48
回答 6查看 283.2K关注 0票数 118

我有一个像这样的div:

代码语言:javascript
复制
<div id="one">
       <div class="first"></div>
       "Hi I am text"
       <div class="second"></div>
       <div class="third"></div>
</div>

我尝试使用jquery将文本从"Hi I am text“更改为"Hi I am replace”。这可能很容易,但我做不到。

使用$('#one').text('')只会清空整个#One div。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-08 22:56:37

文本不应该是独立的。将其放入span元素中。

将其更改为:

代码语言:javascript
复制
<div id="one">
       <div class="first"></div>
       <span>"Hi I am text"</span>
       <div class="second"></div>
       <div class="third"></div>
</div>
代码语言:javascript
复制
$('#one span').text('Hi I am replace');
票数 144
EN

Stack Overflow用户

发布于 2012-08-08 23:04:35

找到文本节点(nodeType==3)并替换textContent

代码语言:javascript
复制
$('#one').contents().filter(function() {
    return this.nodeType == 3
}).each(function(){
    this.textContent = this.textContent.replace('Hi I am text','Hi I am replace');
});

请注意,根据docs,您可以将上面的硬编码3替换为Node.TEXT_NODE,这将使您所做的事情更加清晰。

代码语言:javascript
复制
$('#one').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
}).each(function(){
    this.textContent = this.textContent.replace('Hi I am text','Hi I am replace');
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="one">
       <div class="first"></div>
       "Hi I am text"
       <div class="second"></div>
       <div class="third"></div>
</div>

票数 142
EN

Stack Overflow用户

发布于 2012-08-08 22:57:14

您需要将文本设置为空字符串以外的值。此外,.html()函数应该在保留div的超文本标记语言结构的同时执行此操作。

代码语言:javascript
复制
$('#one').html($('#one').html().replace('text','replace'));
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11867269

复制
相关文章

相似问题

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