多个类的document.getElementsByClassName?

时间:2017-03-03 11:21:46

标签: javascript

我有点卡住了,请帮忙。

<script>  
    var language = '#LanguageCode#-#CountryCode#';
    if(language === 'en-gb'){
      document.getElementsByClassName('apple')[0].innerHTML = '<img src="english-apple.svg"/>';    
      document.getElementsByClassName('android')[0].innerHTML = '<img src="english-android.svg"/>'; 

    } else if(language === 'nb-no'){
         document.getElementsByClassName('apple')[0].innerHTML = '<img src="norwegian-apple.svg"/>';  
         document.getElementsByClassName('android')[0].innerHTML = '<img src="norwegian-android.svg"/>'; 
    }   
</script>

这是一种享受,但当我尝试将另一个类添加到document.getElementsByClassName时,它无法正常工作。

这样的事情:

document.getElementsByClassName('apple bottomapple')[0].innerHTML = '<img src="english-apple.svg"/>';  

在我试图添加的其他课程中,有一个图像具有相同的命名 ,例如。英语 - apple.svg 即可。我需要同时运行这两个类if(language === 'nb-no')true

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

确定。所以这里的问题是:

document.getElementsByClassName('apple bottomapple')适用于:

<div class="apple bottomapple"></div>

但是会为此工作:

<div class="apple"></div>
<div class="bottomapple"></div>

所以你现在有一种方法可以解决我的想法。您可以使用document.querySelectorAll()方法:

var divs = document.querySelectorAll('.apple, .bottomapple');
for(var i = 0; i < divs.length; i++) {
  divs[i].innerText = 'test ' + i;
}
<div class="apple"></div>
<div class="bottomapple"></div>

答案 1 :(得分:0)

有人在这里回答,但现在已经不见了,想要感谢他们。

这对我有用:

[... document.querySelectorAll('。apple,.bottomapple')]。map(x =&gt; x.innerHTML ='');

谢谢大家!