84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
<p class="aa"> 111 <p class="bb">222</p> </p> <script> $(".aa").not(".bb").text('3333') </script>
我现在是想把里面的111改成333,用了上述jq方法后,结果是333,但是里面的222没有被保留。求教该怎么办呢?
认证0级讲师
大概是这样子的
<!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>”)
111在js里是个变量吧?如果这种单纯上页面里找文字然后替换,非常困难。建议直接去js里找对应变量,在js里直接改比较好。另外就是楼上说的多加一个span什么的,但是谁会没事放段文字在页面上,又需要改动而且在js中没有对应的变量?
大概是这样子的
你这个还真不好更改,获取的话还可以好说,更改的话不好改,这个最主要的是你的布局要合理,为什么不在“111”用一个span包裹起来,这样不是更合理一些,也更加的方便对DOM元素的操作,一般来说有嵌套的文本都用一个标签包裹起来,比如说span
用原生的写法比较方便,取第一个text节点;
$(“.aaa”).text(“333<p class=“bbb”>222</p>”)
111在js里是个变量吧?如果这种单纯上页面里找文字然后替换,非常困难。建议直接去js里找对应变量,在js里直接改比较好。另外就是楼上说的多加一个span什么的,但是谁会没事放段文字在页面上,又需要改动而且在js中没有对应的变量?