Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getElementById vs getElementByClassName_Javascript_Html_Vue.js - Fatal编程技术网

Javascript getElementById vs getElementByClassName

Javascript getElementById vs getElementByClassName,javascript,html,vue.js,Javascript,Html,Vue.js,我同时使用了getElementById和getElementByClassNamegetElementById有时返回null,而getElementByClassName每次都能正常工作。这可能是什么原因?我知道getElementbyClassName返回一个列表,这是否意味着其中的列表是空的,而不是父itelf <span v-for="(item, ind) in cues" :key="ind" :class="item.activeclass"

我同时使用了
getElementById
getElementByClassName
getElementById
有时返回
null
,而
getElementByClassName
每次都能正常工作。这可能是什么原因?我知道
getElementbyClassName
返回一个列表,这是否意味着其中的列表是空的,而不是父itelf

<span
    v-for="(item, ind) in cues"
    :key="ind"
    :class="item.activeclass"
    :id="item.activeclass"
>{{ item.text }}</span>
{{item.text}
有时,
id
作为
[object HTMLSpanElement]
正确返回,有时为
null
。 而
总是返回
[object HTMLCollection]


另外,我尝试在
滚动视图中使用
id
,当它不是
null
时,它可以正常工作。是否有方法使用
滚动视图中的

如果页面上存在该类,则不应返回null。你可能找不到正确的id

根据您的代码,看起来您可能有多个相同的id。这不是有效的HTML,而且某些JavaScript实现可能需要唯一的id,因此您还应该确保页面上的所有id都是唯一的


对于scrollIntoView,您只需从按类查找时检索到的元素中获取id,然后检索
scrollIntoView(spanElement.id)
getElementsByClassName返回与类名标准匹配的所有元素的列表

如果不存在任何元素,则结果将是一个空列表

getElementById返回与指定“id”匹配的第一个元素。
如果不存在任何元素,则结果将为“null”。

“这是否意味着其中的列表为空”…可能。显然,由于我们无法看到您的特定代码,或者在运行代码时无法看到DOM中实际存在哪些对象,所以很难判断。但是yes getElementByClassName永远不会返回null,如果没有匹配项,您将得到一个空列表。元素与活动HTML集合。。。。这意味着您在元素出现在页面上之前就引用了它们。不存在
getElementByClassName
之类的情况,我认为您遇到了竞争条件:您可能必须等待下一个勾号,然后才能尝试检索DOM节点
getElementById
只返回单个节点,因此它将始终为null或找到的元素。另一方面,
getElementsByClassName
总是返回一个集合,但是如果您检查它,该集合有时可能是空的。