2014-09-04 92 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; 
相關問題