<html>
<head></head>
<body onload="DecTime();">
<label id="decTimer" name="decTimer1">5:00</label>
</body>
<script type="text/javascript">
function(){
console.log(document.getElementById("decTimer").innerHTML);
console.log(document.getElementsByName("decTimer1").innerHTML);
}
</script>
输出:
第一个控制台:5:00
第二台控制台:未定义
有什么区别?提前谢谢。
答案 0 :(得分:2)
获取元素 ById并获取元素 ByName。第二个返回一个集合。您应该首先通过索引获取特定元素或遍历集合,然后阅读innerHTML
。返回的集合本身没有innerHTML
属性。
答案 1 :(得分:1)
ID是唯一的,名称不是。 尝试
console.log(document.getElementsByName("decTimer1")[0].innerHTML);
因为getElementsByName返回一个节点列表,因为名称get Elements 建议。
答案 2 :(得分:0)
JS小提琴:https://jsfiddle.net/manishghec/u9q0Lq5t/
主要区别在于,名称来自对象,节点列表来自第0个索引。
console.log(document.getElementById("decTimer").innerHTML);
console.log(document.getElementsByName("decTimer1")[0].innerHTML);
答案 3 :(得分:0)
getElementsByName返回一个nodelist集合。所以要检索值
使用$json_string = file_get_contents("client_master.json");
$parsed_json = json_decode($json_string, true);
var_dump($parsed_json);
if (is_array($users) || is_object($users))
{
foreach ($parsed_json as $field => $value) {
// Use $field and $value here
echo $filed ."as ".$value;
}
}
else{
echo mysql_error();
}
您需要传递索引
document.getElementsByName
我可以在你的函数声明中看到另一个问题。如果函数表达式不是立即调用函数表达式,则它必须具有名称(在上面的示例中为function abc(){
document.write('<pre>'+document.getElementById("decTimer").innerHTML+'</pre>');
document.write('<pre>'+document.getElementsByName("decTimer1")[0].innerHTML+'</pre>');
}
abc();
)。否则,您可能会看到abc