javascript - getElementsByClassName > 获取 child

标签 javascript dom getelementbyid

我有这个 HTML 代码:

<div id="channels_0">
   <div id="channels">
      <h4 class="date"><span id="date">Sat 22nd Sep</span> @ 
      <span id="time">12:45</span></h4>
      <h3 class="teems"><span id="date">Swansea City v Everton </span></h3>
      <h4 class="tv"><span id="mychannels"></span>Sky Sports 2/Sky Sports 2 HD</h4>
   </div>
</div>

我有这个 JS:

document.getElementById('channels').innerText)

哪些输出:

Sat 22nd Sep @ 12:45
Swansea City v Everton
Sky Sports 2/Sky Sports 2 HD

我如何获取句柄并输出单个项目,例如:mychannels、teems、time 或 date 即我需要接 child ,这是怎么做到的?

我试过:

document.getElementById('channels').getElementsByTagName('date').value; 

document.getElementsByClassName('date').value;

和其他人,但似乎仍然无法处理它。

最佳答案

使用以 DOM 为中心的 Javascript 库(如 jQuery)可以使这些任务变得更加容易,代码如下:

$('#channels .date').text();

使用 native 方法要实现的一件重要事情是,getElementById 将始终返回单个元素,而 getElementsByClass 等方法返回元素集合,这是原因之一您的代码不起作用(另一个原因是 value 不是标准的 DOM 元素属性:它用于检索表单元素的当前值)。

以下文档方法 querySelectorAll 适用于所有现代浏览器和版本 8 以上的 IE(getElementsByClassName 在版本 9 之前无法在 IE 中使用):

document.querySelectorAll('#channels .date'); 

要获得出现的任何元素的组合 innerHTML(在您的代码中它只是一个,但可能更多),您需要将该元素集合存储在一个变量中,然后遍历它们以逐一提取它们的 innerHTML:

var dates     = document.querySelectorAll('#channels .date');
var datesText = (function(){
    var string = '';

    for(var i = 0; i < dates.length; i++){
        string += dates[i].innerText;
    }

    return string;
}());

关于javascript - getElementsByClassName > 获取 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509440/

相关文章:

javascript - 如何使用javascript获取位于范围内的节点?

javascript - 在数组对象中查找字符串值的最简洁方法?

javascript - AngularJS 范围变量在某处使用 $http 时不起作用

javascript - 在 JavaScript 中将 CSV 转换为 OHLC(开盘价、最高价、最低价、收盘价)?

javascript - GMail 使用什么 API 通知浏览器选项卡收到电子邮件?

javascript - getelementById ('...' ).click 在 Chrome 中不起作用

javascript - 使用 jQuery 根据选定的单选按钮和选项更改选定的选项卡

javascript - 使用简单的 Javascript 切换无序列表项的类

javascript - 未捕获的类型错误 : Cannot read property 'style' of null

javascript - App.js 文件在所有页面上运行 document.getElementById ('age' )?我该如何遏制这个