我有这个 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/