javascript - 如何从其中有 child 的div中获取文本

标签 javascript children nodevalue child-nodes

我目前正在学习 JavaScript,但遇到以下问题。是否可以只从其中有子项的 div 获取文本?我设法让它只对出现在 div 的 child 之前的文本起作用。

PS:我想提一下,我正在尝试仅使用纯 JavaScript 来实现这一点。

var Class = document.querySelectorAll('div,b');
for (var i=0; i < Class.length; i++){
   console.log(Class[i].childNodes[0].nodeValue);
}
<div class="Bio">
My name is <b>John Doe</b> and I am coming from Texas
</div>

<div class="Bio">
My name is <b>Jean Frye</b> and I am coming from Alabama
</div>

最佳答案

这不是很干净的方式,但尝试这样的事情:

//get all div's with Bio css class (You can change it)
var Class = document.querySelectorAll('.Bio');
var sp=document.getElementById('res');
var arr=[]; //I put result into array so You can use it where You need
for (var i=0; i < Class.length; i++) {
   for(var x=0;x<Class[i].childNodes.length;x++) {
     if(Class[i].childNodes[x].nodeValue==null) {
        //get value, innerHTML, from <b>
   			//res.innerHTML+=Class[i].childNodes[x].innerHTML+'<br>';
        arr.push(Class[i].childNodes[x].innerHTML);
        } else {
        //get div innerHTML (before,after every child node
        //res.innerHTML+=Class[i].childNodes[x].nodeValue+'<br>';
        arr.push(Class[i].childNodes[x].nodeValue);
        }
   }
}
//show result into that span
for(var i=0;i<arr.length;i++) {
res.innerHTML+=arr[i]+'<br>';
}
<div class="Bio">
My name is <b>John Doe</b> and I am coming from Texas
</div>

<div class="Bio">
My name is <b>Jean Frye</b> and I am coming from Alabama
</div>
<br><br>
<!-- I use this span to show result -->
<span id="res"></span>

关于javascript - 如何从其中有 child 的div中获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967597/

相关文章:

javascript - jquery中不同位置的相同变量的不同值

javascript - 使用 Node.js/Angular 对 Google 电子表格 JSON 的跨源请求

javascript - 如何制作气泡轮播?

javascript - 在 React Redux 中调度操作之前等待多个 Axios 调用

jquery - 计算 div + childs 中的 <a> 标签

css - 拉伸(stretch)/收缩父 div 以适应内容的宽度

elasticsearch - 如何跨嵌套文档汇总文档?

javascript - ChildNodes/NodeValue 混淆

Javascript 节点值

javascript - 为什么获取nodeValue时,即使显示正确,仍然返回null?