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

标签 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]']") 但我不知道这个表达式是否有效。

最佳答案

你要找的是eq():

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

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

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

关于javascript - 使用索引从复选框中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38716988/

相关文章:

qt - onCheckedChanged 与 onCheckStateChanged

javascript - 无法访问函数内的 props

JavaScript:替换部分文本存储在以 '$"开头的字符串变量中?

jquery - IE旋转离轴

javascript - jQuery 淡入淡出切换多个 div

javascript - 将自己传递给 OnClick 事件 JavaScript

javascript - Three.js透明背景根本不起作用

javascript - 使用Javascript,如何将字符串中的每个单词大写(不包括首字母缩略词)?

javascript - HTML 代码不工作

java - 如何使用 JSP 动态添加复选框