Javascript document.getElementsByTagName在将脚本放在正文之后时返回未定义
我知道这是一个经常被问到的问题。 我尝试过所有的方法,比如对body标记使用onload(), 将脚本放在DOM元素之后,并使用自调用函数。 但我知道我的元素是未定义的 注意:Javascript document.getElementsByTagName在将脚本放在正文之后时返回未定义,javascript,html,Javascript,Html,我知道这是一个经常被问到的问题。 我尝试过所有的方法,比如对body标记使用onload(), 将脚本放在DOM元素之后,并使用自调用函数。 但我知道我的元素是未定义的 注意:document.getElementsByTagName(“”)替换为document.getElementById(“”)工作正常。为什么呢?请解释我的两个疑问。这是我的简单代码 拖我 函数loadHandler(){ document.getElementsByTagName('p').setAttribute(
document.getElementsByTagName(“”)
替换为document.getElementById(“”)
工作正常。为什么呢?请解释我的两个疑问。这是我的简单代码
拖我
函数loadHandler(){
document.getElementsByTagName('p').setAttribute('draggable',true);
}
getElementsByTagName返回结果数组,而不仅仅是像getElementById这样的单个结果。尝试使用getElementsByTagName('p')[0]。getElementsByTagName
(顾名思义)返回一个元素数组。如果你想要第一个,就拿第一个
。突出显示{color:red}
拖我
函数loadHandler(){
var elem=document.getElementsByTagName('p')[0];
元素setAttribute('draggable',true)
元素classList.add('highlight');
}
我猜这是因为'getElementsByTagName'返回一个数组,其中getElementById只返回一个元素。我太慢了:DgetElementsByTagName
returnHTMLCollection
,您可以使用类似数组的表示法访问它的元素。您所说的“它没有帮助”是什么意思?我自己检查过了,这样就消除了这个错误。