复选框、存储在数组中并使用 switch 语句
Check Boxes, Store in Array and utilize switch statement
预先感谢回答此问题的任何人。
我需要帮助:
如何显示自动更新的select复选框的数量?例如:如果我select 1个来自SECTION A的复选框,它将显示来自SECTION A的1个。如果我select另一个框,它会自动显示 SECTION A 中的 2,但如果未选中该复选框,它也会减去该值。selected。有点像理货
再次感谢您的帮助和抽出时间。
var infoArray=new Array();
function userSelection(userInput)
{
var itemName = userInput.name;
var itemName2 = userInput.value;
switch(itemName)
{
case "sectionR":
{
switch(itemName2)
{
case "repair car":
infoArray[0]=1;
break;
case "wood work":
infoArray[0]=1;
break;
case "explore forest":
infoArray[0]=1;
//end of case "sectionR"
}
//end of sub switch
}
break;
case "sectionA":
{
switch(itemName2)
{
case "clothing design":
infoArray[1]=1;
break;
case "public singing":
infoArray[1]=1;
break;
case "decorate":
infoArray[1]=1;
//end of sub switch
}
// end of case sectionA
}
//end of main switch
}
var userOutput=new Array();
for(var i=0; i<itemName.length; i++)
{
userOutput.push(itemName[i].checked);
}
document.getElementById("selectionTotal").innerHTML = "R SECTION" + " " + "," + " A SECTION" + "<br>" +
infoArray;
//end of userSelection()
}
你函数的前两行有问题:
var userInput = document.getElementsByName('sectionR');
var userOutput = document.getElementsByName('sectionR').value;
首先,它可以写得更简单,更优雅:
var userInput = document.getElementsByName('sectionR');
var userOutput = userInput.value;
但这仍然会包含相同的错误。 document.getElementsByName("sectionR")
returns 一个包含名称为 "sectionR" 的所有元素的数组。所以你不能从数组中获取值。您必须遍历元素:
var userOutput = []; // or var userOutput = new Array();
for (var i=0; i < userInput.length; i++) {
userOutput.push(userInput[i].value);
}
现在您在数组 userOutput
中拥有名称为 "sectionR" 的所有元素的值,以后可以使用它们。
还有关于您的 for 循环的通知。您在没有关键字 var
的情况下声明 x=0
。这使得变量 x
在全局范围内可见。如果您的代码较长并且您在代码的其他地方使用同名变量,它可能会导致一些意外行为。
预先感谢回答此问题的任何人。
我需要帮助: 如何显示自动更新的select复选框的数量?例如:如果我select 1个来自SECTION A的复选框,它将显示来自SECTION A的1个。如果我select另一个框,它会自动显示 SECTION A 中的 2,但如果未选中该复选框,它也会减去该值。selected。有点像理货
再次感谢您的帮助和抽出时间。
var infoArray=new Array();
function userSelection(userInput)
{
var itemName = userInput.name;
var itemName2 = userInput.value;
switch(itemName)
{
case "sectionR":
{
switch(itemName2)
{
case "repair car":
infoArray[0]=1;
break;
case "wood work":
infoArray[0]=1;
break;
case "explore forest":
infoArray[0]=1;
//end of case "sectionR"
}
//end of sub switch
}
break;
case "sectionA":
{
switch(itemName2)
{
case "clothing design":
infoArray[1]=1;
break;
case "public singing":
infoArray[1]=1;
break;
case "decorate":
infoArray[1]=1;
//end of sub switch
}
// end of case sectionA
}
//end of main switch
}
var userOutput=new Array();
for(var i=0; i<itemName.length; i++)
{
userOutput.push(itemName[i].checked);
}
document.getElementById("selectionTotal").innerHTML = "R SECTION" + " " + "," + " A SECTION" + "<br>" +
infoArray;
//end of userSelection()
}
你函数的前两行有问题:
var userInput = document.getElementsByName('sectionR');
var userOutput = document.getElementsByName('sectionR').value;
首先,它可以写得更简单,更优雅:
var userInput = document.getElementsByName('sectionR');
var userOutput = userInput.value;
但这仍然会包含相同的错误。 document.getElementsByName("sectionR")
returns 一个包含名称为 "sectionR" 的所有元素的数组。所以你不能从数组中获取值。您必须遍历元素:
var userOutput = []; // or var userOutput = new Array();
for (var i=0; i < userInput.length; i++) {
userOutput.push(userInput[i].value);
}
现在您在数组 userOutput
中拥有名称为 "sectionR" 的所有元素的值,以后可以使用它们。
还有关于您的 for 循环的通知。您在没有关键字 var
的情况下声明 x=0
。这使得变量 x
在全局范围内可见。如果您的代码较长并且您在代码的其他地方使用同名变量,它可能会导致一些意外行为。