我有一个形式的问题,问您是否曾经使用过酒精和毒品,两者都没有,“ 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)实际上是正确的。

09-09 18:16