document.getElementsByClassName()用于多个类无法正常工作

时间:2015-10-28 15:45:21

标签: javascript

在优化公司代码期间,我陷入了document.getElementsByClassName()。

以下是问题:

我正在处理两种类型的网页:

第一页有:

<div class="leaderboardad">...</div>

第二页有:

<div class="leaderboard above_header">...</div>

我们可以看到唯一的区别是classname,但是当我想编写一个js文件来使用document.getElementsByClassName()来检测这两个div时,会发生一些事情:

if(document.getElementsByClassName('leaderboard above_header')){
   console.log("2 classes");
}else if(document.getElementsByClassName('leaderboardad')){
  console.log("1 class");
}

此代码适用于第二页,我总是在第一页的控制台中获得“2个类”。

然后当我将代码更改为

if(document.getElementsByClassName('leaderboardad')){
   console.log("1 class");
}else if(document.getElementsByClassName('leaderboard above_header')){
  console.log("2 classes");
}

此代码适用于第一页,但我总是在第二页的控制台中获得“1类”。

假设我们无法更改页面中的类名,我可以为这种情况做些什么?

1 个答案:

答案 0 :(得分:4)

getElementsByClassName

  

返回具有所有给定类名的所有子元素的类数组对象。

这意味着在struct Config_DEVELOPMENT { static let ENVIRONMENT = "PRODUCTION" static let BASE_URL = "https://dev.technoburgh.com" static let API_KEY = "dev-key" } struct Config_TEST { static let ENVIRONMENT = "PRODUCTION" static let BASE_URL = "https://dev.technoburgh.com" static let API_KEY = "dev-key" } struct Config_PRODUCTION { static let ENVIRONMENT = "PRODUCTION" static let BASE_URL = "https://dev.technoburgh.com" static let API_KEY = "dev-key" } 语句中使用时,它始终是&#34; truthy&#34;。您需要检查类似数组的对象的长度,以查看返回的元素数量:

if