Javascript 我可以像这样按顺序选择课程吗?

Javascript 我可以像这样按顺序选择课程吗?,javascript,html,wordpress,Javascript,Html,Wordpress,我这里有一个由Wordpress生成的HTML。我想用JS分别选择div。这可能吗?我可以按照JS在我的HTML中找到它们的顺序来选择它们吗 我尝试过这样做是否可行(通过添加索引号),但我相信这只用于LI元素。但你明白了。最终结果是使用.classname为每个div对象添加不同的类名 var koffie=document.getElementsByClassName(“g-gridstatistic-item-text2”)[0]; var brain=document.getElemen

我这里有一个由Wordpress生成的HTML。我想用JS分别选择div。这可能吗?我可以按照JS在我的HTML中找到它们的顺序来选择它们吗

我尝试过这样做是否可行(通过添加索引号),但我相信这只用于LI元素。但你明白了。最终结果是使用.classname为每个div对象添加不同的类名

var koffie=document.getElementsByClassName(“g-gridstatistic-item-text2”)[0];
var brain=document.getElementsByClassName(“g-gridstatistic-item-text2”)[1];
var tevred=document.getElementsByClassName(“g-gridstatistic-item-text2”)[2];
控制台日志(koffie);
控制台日志(大脑);
控制台日志(tevred)

Kopjes koffie/达格
每周头脑风暴次数
特夫雷登·克拉滕
就像这样

var yourVariableName = document.getElementsByClassName("g-gridstatistic-item-text2");

console.log(youVariableName[0]);
console.log(youVariableName[1]);
以此类推,就像一个数组

document.querySelectorAll('.g-gridstatistic-item-text2').item(0);


这样,您可以只使用CSS选择器,下面的代码应该可以工作

var classes = document.getElementsByClassName('g-gridstatistic-item-text2');
for(var i=0; i<=classes.length; i++) {
    var appendClass = 'your_class_name'+i;
    classes[i].classList.add(appendClass);
}
var classes=document.getElementsByClassName('g-gridstatistic-item-text2');

对于(var i=0;i您的JavaScript代码在检查DOM是否已加载之前正在查找DOM元素。请尝试将其包装到事件侦听器中,如下所示:

JS

document.addEventListener('DOMContentLoaded', function () {

var koffie = document.getElementsByClassName("g-gridstatistic-item-text2")[0];
var brain = document.getElementsByClassName("g-gridstatistic-item-text2")[1];
var tevred = document.getElementsByClassName("g-gridstatistic-item-text2")[2];

//console.log(koffie);
//console.log(brain);
//console.log(tevred);

/*  to evidence that targeting works:  */
brain.classList.add('addedClass'); 

});
.addedClass {
  font-size:22px;
  color:red;
}
CSS

document.addEventListener('DOMContentLoaded', function () {

var koffie = document.getElementsByClassName("g-gridstatistic-item-text2")[0];
var brain = document.getElementsByClassName("g-gridstatistic-item-text2")[1];
var tevred = document.getElementsByClassName("g-gridstatistic-item-text2")[2];

//console.log(koffie);
//console.log(brain);
//console.log(tevred);

/*  to evidence that targeting works:  */
brain.classList.add('addedClass'); 

});
.addedClass {
  font-size:22px;
  color:red;
}
完整演示如下:

您选择了所需的所有元素,我错了吗?您想做什么?您是正确的,但我想分别选择它们。请在使用document.getElementsByClassName()时更加精确我可以按类名选择HTML DOM对象。但是,我的HTML文件中有重复的类名。我希望能够根据类名和它们在页面上的显示顺序分别选择它们。接下来,我想分别编辑它们的类名值。它们都需要添加一个按每个div区分的类。所以我必须选择它们当它们都有相同的类名时,将它们的类名分开。你能更新你的问题并包括,你希望最终结果是什么样子吗?也许一个循环可以解决你的问题。不,这对我不起作用。我试图将它们放在分开的变量中,这样我就可以向对象类名添加信息。运行这个循环只会让e在我的控制台中未定义。根据您的建议,我提出了这个var koffie=document.queryselectoral('.g-gridstatistic-item-text2');koffie[0]。className+=“fa-fa-coffee-fa-rw”;koffie[1]。className+=“fa-fa-flash fa rw”;koffie[2]。className+=“fa-fa-handshake-o fa-rw”;它给我错误类型错误:未定义不是对象(评估'koffie[0].className')是的,因为它不是一个数组,而是一个对象,并且您使用方法项来获取它,如图所示……工作起来很有魅力!