2014-09-04 89 views
0

我想从getElementByClassName中获取所选索引。如何从getElementByClassName中获取所选索引

我知道我能得到它从标识,但不知其不工作的类名..

document.getElementById("Metriclayer").selectedIndex = abc; 

这样我怎么能得到它document.getElementByClassName。

我想设置ABC的值(它的整数)的document.getElementByClassName("MetricClass").

选定的指标如何能做到这一点。

回答

2

没有功能getElementByClassName,功能是getElementsByClassName。正如你所看到的,Elements是复数,所以它返回所有具有该类的元素的集合,而不是单个元素。您需要为集合建立索引。如果你想的收集,使用第一(或唯一的)元素:

document.getElementsByClassName("MetricClass")[0].selectedIndex = abc; 

DEMO

如果你想在所有这些工作,写一个循环:

var elements = document.getElementsByClassName("MetricClass"); 
for (var i = 0, l = elements.length; i < l; i++) { 
    elements[i].selectedIndex = abc; 
} 
+0

喜@Barmar - Metriclayer是组合框类的名字,我想保存ABC的document.getElementsByClassName值(比如2)(“Metriclayer”) 0] .selectedIndex = abc;然后再想要检索它,就像abc = document.getElementsByClassName(“Metriclayer”)[0] .selectedIndex – PSDebugger 2014-09-04 23:48:21

+0

这是不工作的,因为我不能得到特定的选定索引后检索它 – PSDebugger 2014-09-04 23:49:02

+0

我不知道为什么它不适合你,它适用于我:http://jsfiddle.net/barmar/685sa7fs/3/ – Barmar 2014-09-05 00:07:01

0

document.getElementByClassName不存在,因为它是没有意义的 - 在单个文档中可以有零到多个具有相同类名的元素。正确的复数函数名称是document.getElementsByClassName。由于这会返回一组元素,而不是一个元素,因此需要更多的处理才能获得有用的结果。

0

尝试了这一点:

var el = document.getElementsByClassName('MetricClass'); 
var index0 = el[0].selectedIndex; 
相关问题