我有一个形式的问题,问您是否曾经使用过酒精和毒品,两者都没有,“ 777”,“ 999”。
酒精:问题2;毒品:问题3;两者:问题2 + 3;两者都不是或“ 777”或“ 999”:问题4。
我有一个jquery change()侦听设置(并且正在工作),并且我有一个switch语句设置,并且除了neither||"777"||"999"
以外,大部分都在工作。在case "neither…"
内部,我有一个数组vices
和一个for…in
循环。我的假设是for…in
的功能类似于php的foreach
。
在隐藏该问题并将其值设置为不适用之前,我需要检测该问题是否不是inactive
(因此我知道这是有目的的,而不是将其留空)。
case "neither" || "777" || "999":
var vices = new Array('alcohol','drugs');
for ( vice in vices ) {
if ( $("ul#vice").hasClass("inactive") == false ) {
$("ul#vice").append('<input name="'+vice+'" type="radio" value="not applicable" checked="checked" />');
$("ul#vice").delay(250).queue( function() {$(this).addClass("inactive");queue()} );
}
}
我认为问题与
$("ul#vice")
有关,但我不确定。 (我尝试过$("ul#"+vice)
,但这也不起作用)。有问题的东西看起来像:
.inactive{display:none; z-index:-5}
#
<ul id="alcohol" class="inactive">How many alcoholic drinks do you have?
<li><input name="alcohol" type="text" maxlength="2" /><span id="alcohol" class="inactive"></span></li>
<li><input name="alcohol" type="radio" value="777" />Don't know</li>
<li><input name="alcohol" type="radio" value="999" />Prefer to not answer</li>
<input name="alcohol" type="radio" value="not applicable" checked="checked" />
</ul>
提前致谢!
最佳答案
好吧,快速搜索会告诉您...实际上是如何工作的:http://w3schools.com/js/js_loop_for_in.asp
你需要:
for (i=0; i<vices.length; i++) {
var vice = vices[i]; ...
}
并且由于这是一个变量,所以
$("ul#" + vice)
实际上是正确的。