gpt4 book ai didi

Javascript - 无法使 'getElementsByClassName' 正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 05:00:33 25 4
gpt4 key购买 nike

我正在努力弄清楚为什么我的代码不起作用。这是 JS 的一部分:

function init() {
var showMenu = document.getElementsByClassName('showMenu'),
perspectiveWrapper = document.getElementById( 'perspective' ),
container = perspectiveWrapper.querySelector( '.container' ),
contentWrapper = container.querySelector( '.wrapper' );

showMenu.addEventListener( clickevent, function( ev ) {
ev.stopPropagation();
ev.preventDefault();
docscroll = scrollY();
// change top of contentWrapper
contentWrapper.style.top = docscroll * -1 + 'px';
// mac chrome issue:
document.body.scrollTop = document.documentElement.scrollTop = 0;
// add modalview class
classie.add( perspectiveWrapper, 'modalview' );
// animate..
setTimeout( function() { classie.add( perspectiveWrapper, 'animate' ); }, 25 );
});
}

这是 HTML 的一部分:

<div id="topBar">
<h1>Company</h1>
<a href="#" class="entypo-menu showMenu"></a>
</div>

<div class="line"></div>

<div id="fixedBar">
<h1>Company</h1>
<a href="#" class="entypo-menu showMenu"></a>
</div>

由于某种原因,当我加载页面时,出现此错误:

TypeError: undefined is not a function (evaluating 'showMenu.addEventListener')

我不明白这一点,因为如果我更改这一行:

var showMenu = document.getElementsByClassName('showMenu'),

到:

var showMenu = document.getElementById( 'showMenu' ),

它确实有效!

为什么类选择器不能工作而 id 可以?我正在尝试获取类 showMenu 的两个链接以执行 JS。

最佳答案

document.getElementsByClassName返回与类名匹配的 所有 元素的类数组列表(准确地说是 HTMLCollection )。您可能关心第一个元素,因此请尝试使用以下元素:

var showMenu = document.getElementsByClassName( 'showMenu' )[0],

如果您关心所有元素,则需要遍历元素:

var showMenu = document.getElementsByClassName( 'showMenu' ),

// ...

for ( var i = 0; i < showMenu.length; ++i ) {
showMenu[i].addEventListener( clickevt, function( ev ) {
// Your code here
});
}

关于Javascript - 无法使 'getElementsByClassName' 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28387375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com