HTML5 & # 39;时间# 39;标签设置值不正确
HTML5 'time' tag not setting value properly
我有以下代码:
<html>
<script>
setInterval("settime()", 1000);
function settime () {
var dateTime = new Date();
var hours = dateTime.getHours();
var minutes = dateTime.getMinutes();
var time = "";
if (hours === 0) {
hours = 12;
}
time = (hours > 12 ? hours - 12 : hours) + ":" +
(minutes < 10 ? "0" : "") + minutes + (hours > 12 ? "PM" : "AM");
// Doesn't work at all...
document.getElementsByTagName('time').textContent = time;
document.getElementsByTagName('time').innerHTML = time;
console.log('Time set with js: ' + document.getElementsByTagName('time').textContent);
// Works fine...
//$('time').text(time);
}
</script>
<body>
<time></time>
</body>
</html>
为什么常规的JS不工作,但jQuery text()
工作得很好?
小提琴
因为document.getElementsByTagName
返回一个nodeList而不是单个元素,所以必须指定哪个。节点列表的工作方式类似于数组,如下所示:
document.getElementsByTagName('time')[0].innerHTML = time;
。
http://jsfiddle.net/4EqxW/3/注意document.getElementsByTagName('time')[0].
部分
getElementsbyTagName
是返回数组的节点(NodeList),所以你必须指定到哪个元素你访问属性
Marek Sebera和"amosrivera"回答了你问题的第一部分(主要部分)
然后回答你问题的第二部分…
jQuery的"text()"方法将执行所需的结果所有的元素,匹配您的原始选择器(aka…
Try
document.getElementsByTagName('time')[0].textContent = time;
document.getElementsByTagName('time')[0].innerHTML = time;
注意getElementsByTagName
返回一个NodeList,它是一个数组,而不是单个元素。代码变更结果
相关文章:
- 变量dos'设置不正确
- Ember.js{{render}}助手模型设置不正确
- 使用 Javascript/JQuery 使用 Ajax 加载 Google Maps API,回调设置不正确
- 关联数组设置不正确
- H1 标题设置不正确
- 标头活动类设置不正确
- Mediaelement.js setCurrentTime在Firefox和使用flash时设置的时间不正确
- 为什么Raphael.js的动画设置到不正确的坐标
- D3嵌套格式设置日期不正确
- 在if/else if的函数作用域中设置的值不正确
- 使用Javascript设置时,表单操作不正确
- Ember.js复选框绑定初始值设置不正确
- 在Javascript中设置CSS 3过渡和转换在Chrome中工作,但在IE 10, FF中不正确
- 元素的同位素高度设置不正确
- HTML5 & # 39;时间# 39;标签设置值不正确
- 为什么mime类型通常设置不正确?
- Javascript日期创建时,不能设置正确的月份
- 日历脚本设置的日期不正确(天减一)
- 下拉菜单中选择的值设置不正确
- Object3D.applyMatrix()设置不正确的比例