使用索引从复选框中提取值

时间:2016-08-02 09:44:11

标签: javascript jquery checkbox

我正在制作一个带有几个复选框的民意调查页面。我有一个数组results,可以计算每个复选框的点击次数。

<h2>What's your favorite pet</h2>
<form>
<input type="checkbox" name="cb[0]" value="Cats"/>
<input type="checkbox" name="cb[1]" value="Dogs"/>
<input type="checkbox" name="cb[2]" value="Spiders"/>
<input type="checkbox" name="cb[3]" value="Whales"/>
</form>

我还有一个“显示结果”按钮,显示一个警告窗口,其中包含一个字符串变量,我已经硬编码了与其结果连接的选项(猫,狗......)。这是一个例子:

var myResults = "Cats "+results[0] + " Dogs "+results[1] + " Spiders "+results[2];

我的问题是,如果我想在轮询中添加新选项,我还必须手动将其添加到myResults字符串。我怎样才能自动完成?

我尝试过一些东西,但我无法让它们发挥作用。他们在这里:

var allCheckboxes = document.getElementsByTagName("input"); //I only have checkboxes on the page
var resultsReady="";
for(var i=0;i<allCheckboxes.length;i++){
var currentVal = $("input")[i].val(); //this expression is false for some reason
resultsReady.concat(currentVal,results[i]," ");}

为什么$("input")[2].val();不起作用?我知道它不起作用,因为我隔离它并且它不起作用。

我也试过$("input").get(i).val();但它没有用,我可以看看为什么,但我不知道如何解决它。

我尝试的最后一件事是$("input['cb[i]']"),但我不知道这个表达是否有效。

1 个答案:

答案 0 :(得分:2)

您正在寻找eq()

$("input").eq(i).val();
// or
$("input:eq(" + i + ")").val();

你可以使用它,但它是value而不是val(),因为在这种情况下你会得到一个DOM元素。

$("input")[i].value;