我是javascript新手。我正在尝试构建一个复杂的表单,同时学习JS和JQ。。。这不是一项容易的任务。这段代码有效,但我不知道这两行代码的作用,所以我想在这里问一下。
这个代码的作用是循环遍历一个数组,查看单选按钮复选框是否被选中为是或否。当用户重新访问他/她正在填写的表单时,它会在初始化时运行。该代码附加到一个文本字段元素,如果myRadioButton为yes,则取消隐藏,如果为no,则保持隐藏。
我不知道第5行和第6行做什么(从第二个if语句开始(。一些知识渊博的人会不会像在教程中那样,好心地把这些台词转录成几句话?我真的很感激!
var rbVal = "";
var rbBtn = JQuery("[name="myRadioButton[]"]");
for (var i = 0; i < rbBtn.length; i++)
if (rbBtn[i].checked) {
if (rbVal != "") rbVal += ",";
rbVal += rbBtn[i].value;
}
if( rbVal != "yes" ){
doSomething;
}
else {
doSomethingElse;
}
该代码正在检查共享名称为myRadioButton[]
的所有单选按钮,以确保如果选中某个单选按钮,则其值将添加到用逗号分隔的rbVal
字符串中。
var rbBtn = JQuery("[name="myRadioButton[]"]");
<-获取一组单选按钮
for (var i = 0; i < rbBtn.length; i++)
<-循环遍历该数组中的每个按钮。
if (rbBtn[i].checked) {
<-如果选择了按钮,则检查是否已经设置了CCD_ 6<--要么你在这里遗漏了什么,要么它是错误的程序
rbVal
的值与空字符串(""
(进行比较。如果rbVal
不等于(!=
(一个空字符串,则在rbVal
后面附加一个包含逗号字符的字符串。例如,如果rbVal
包含字符串"hello",那么在执行该行之后,它将包含"hello,"。
第6行将rbBtn[i].value
的值附加到rbVal
。rbBtn
是一个类似数组的对象(事实上,它看起来是jQuery的一个实例,包含选择器匹配的内容(,当您使用类似数组语法访问jQuery对象时,您会得到实际的DOM元素,而不是另一个jQuery对象,因此value
属性是DOM元素的实际value
属性(从外观上看,这将是一个单选按钮(。
所以,如果你有一个这样的单选按钮:
<input type="radio" value="someVal">
则循环将产生CCD_ 19。
如果你有两个单选按钮:
<input type="radio" value="someVal">
<input type="radio" value="anotherVal">
那么你最终会得到CCD_ 20。您可以从中看出该循环的总体目的是什么——构建一个由jQuery选择器匹配的所有单选按钮的值组成的逗号分隔字符串。
奇怪的是,这是使用jQuery来获取单选按钮和一些普通的JavaScript来查看是否检查了返回的单选按钮。
CCD_ 21使用空字符串CCD_。
CCD_ 23从被称为CCD_ 24的文档中获取所有元素。
for (var i = 0; i < rbBtn.length; i++)
循环通过每个返回的元素(可能有不止一个,因为myRadioButton[]
是一个单选按钮阵列,因此[]
在末尾(。i
是返回元素数组中的当前索引。if (rbBtn[i].checked)
查看单选按钮是否为"选中"(如果您愿意,则为"打开"(。rbVal += rbBtn[i].value;
:如果选中了当前单选按钮(记住,for()
在所有单选按钮中循环(,则获取它的value
属性,并将其附加(添加到(当前rbVal
中的任何内容。例如,如果rbVal
包含Hello
,并且单选按钮的值为world
,则rbVal
最终将包含Hello world
。if( rbVal != "yes" )
如果rbVal
中的值不等于(!=
(yes
,则我们调用doSomething
函数。如果
rbVal
确实包含yes
,那么我们需要调用doSomethingElse
函数:else { doSomethingElse; }