2013-05-21 38 views
0

有10个不同的针脚,我需要的状态。Javascript - 获取选择(值)以评估

<select> 
    <option value="on" id="p1StatusOn" name="pin1Status">on</option> 
    <option value="off" id="p1StatusOff" name="pin1Status">off</option> 
</select> 

使用Javascript - 试图让针1-10的值到一个数组后评估,看是否启用或禁用

var e = []; 
    for (var i=1;i<=10;i++){ 
     e[i] = document.getElementById("p" + i + "_status"); 
    } 

然后,一旦我得到的价值,我可以运行验证其他输入脚本。

我早就试过这个问题,但是我真的很想做点什么。我刚刚学习Javascript,并一直试图找出这一问题的大部分时间。谢谢!

+2

问什么?这里没有问题。另外,你不能有多个具有相同ID的元素。 – Dennis

+0

两个不同的控件不能有相同的ID。 – Guanxi

+0

请为每个元素使用不同的ID,并提出您的问题。 –

回答

0

好吧,你得到p1_status当你的ID实际上是p1Status ...这只是元素,你似乎想要选择的项目?

试试这个:

<select id="p1Status" name="pin1Status"> 
    <option value="on">on</option> 
    <option value="off">off</option> 
</select> 

JS

var e = []; 
for (var i=1;i<=10;i++){ 
     e[i] = document.getElementById("p" + i + "Status").value; 
} 
+0

http://jsfiddle.net/cGmeW/ – smerny

0

使用不同的ID对每个元素并修补的getElementById参数。为了让您需要添加的价值。价值:

var e = []; 
     for (var i=1;i<=10;i++){ 
      e[i] = document.getElementById("p" + i + "Status").value; 
     } 
+0

这不是Status的问题,这是我正在做的一个例子。 – Caswell

+0

@Caswell我编辑了我的答案。试试看。希望它有帮助 –

+1

val是jQuery和gEBI是纯DOM ... – Dennis

0

你或许应该瞄准的选择,并获得选择的值:

<select id="p1Status" name="pin1Status" class="elementToGet"> 
    <option value="on">on</option> 
    <option value="off">off</option> 
</select> 

-

var elems = document.getElementsByClassName('elementToGet'), 
    e  = []; 
for (var i=0; i < elems.length ;i++){ 
    e.push(elems[i].value); 
} 

我喜欢实际选择基于诸如类的选择器的元素,而不是一些随机数。

+0

'+ 1'完美的解决方案,[FIDDLE DEMO](http://jsfiddle.net/mojtaba/Ndp8G/)。 – 2013-05-21 02:22:56

+0

您是否需要使用推送才能获得价值? – Caswell

+0

不,'push()'将值压入数组。 – adeneo