javascript - 想改变里面的字,尝试用jq的.text(),却无法办到
PHP中文网
PHP中文网 2017-04-11 10:02:28
[JavaScript讨论组]

<p class="aa">
    111
    <p class="bb">222</p>
</p>
<script>
$(".aa").not(".bb").text('3333')
</script>

我现在是想把里面的111改成333,用了上述jq方法后,
结果是333,但是里面的222没有被保留。求教该怎么办呢?

PHP中文网
PHP中文网

认证0级讲师

全部回复(6)
阿神

大概是这样子的

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
  <p class="aa">
    111
    <p class="bb">222</p>
    <p class="cc">555</p>
</p>
<script>
var nodes = $(".aa >p"); //缓存节点
$(".aa").text('3333').prepend(nodes); //修改后再添加回去
</script>
</body>
</html>
巴扎黑

你这个还真不好更改,获取的话还可以好说,更改的话不好改,这个最主要的是你的布局要合理,为什么不在“111”用一个span包裹起来,这样不是更合理一些,也更加的方便对DOM元素的操作,一般来说有嵌套的文本都用一个标签包裹起来,比如说span

阿神
$(".aa").html('3333'+$(".bb")[0].outerHTML)
天蓬老师

用原生的写法比较方便,取第一个text节点;

$('.aa')[0].childNodes[0].nodeValue = "333";
巴扎黑

$(“.aaa”).text(“333<p class=“bbb”>222</p>”)

PHPz

111在js里是个变量吧?如果这种单纯上页面里找文字然后替换,非常困难。建议直接去js里找对应变量,在js里直接改比较好。另外就是楼上说的多加一个span什么的,但是谁会没事放段文字在页面上,又需要改动而且在js中没有对应的变量?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号