我有一个关于数组的基本JS问题。
我似乎无法围绕以下代码包裹大脑。我了解您需要以下代码才能使该程序了解其已检查,但是有人可以通过线路行带我走吗?...
var sex = document.getElementsByName("sex");
var sex_value = "";
//here is where my confusion starts
for (var i=0; i < sex.length; i++)
{
if (sex[i].checked)
sex_value = sex[i].value;
}
// where my confusion ends
if(sex_value == 0)
{
alert("What is your sex?...");
return false;
}
// buttons and what not go here
<input type="radio" name="sex" value="male">Male
<input type="radio" name="sex" value="female">Female
与当前一样,每当页面加载时,您将始终看到"您的性别是什么?..."警报,因为在页面加载中都没有选择任何复选框。如果将checked
添加到一个无线电输入元素中,则在页面加载上,sex_value
变量应包含相应的checked
输入元素的值。
这是线条评分的代码。
// Gets all elements on the page that have a name="sex"
var sex = document.getElementsByName("sex");
// Sets a blank string to be updated later (or remain blank)
var sex_value = "";
// This loop runs through all of the [name="sex"] elements
for (var i=0; i < sex.length; i++)
{
// If the value is selected, set sex_value to the value of the input
if (sex[i].checked)
sex_value = sex[i].value;
}
// Really should be if( sex_value === '' )
if(sex_value == 0)
{
alert("What is your sex?...");
return false;
}
这是您设置checked
元素时发生的情况:http://jsfiddle.net/529kx4co/
var sex = document.getElementsByName("sex");
此处sex
是name="sex"
定义的DOM元素的集合。
和这个:
for (var i=0; i < sex.length; i++)
{
if (sex[i].checked) {
sex_value = sex[i].value;
break;
}
}
is:对于该集合中的每个DOM元素,检查是否检查了元素。如果是这样获取其值属性并将其分配给sex_value
变量。
该值将是整个广播组的值(输入的收集|具有相同名称的无线电)。