为什么这个for循环返回一个字符的索引而不是整个属性?

时间:2012-06-15 18:15:39

标签: javascript jquery loops for-loop

var options = {
fieldsToValidate : {},  
slideDowns : {
    0: '#address-phone-block',
    1: '#zip-dob-block',
    2: '#nextButton'
},
continueButton: "#continue-button",
landingForm: '#landingForm'
}

for (var slider in options.slideDowns[]){
    console.log('did this work?' , slider , options.continueButton[slider])
    $(options.continueButton[slider]).slideDown();  
}

当控制台记录时,我得到此输出,然后在jQuery选择器上出现此错误:

did this work? 0 #
"Syntax error, unrecognized expression: #"

我知道滑块是0/1/2所以为什么这给了我第一个属性的第一个字符?

1 个答案:

答案 0 :(得分:2)

由于options.continueButtonString且值为#continue-button',因此options.continueButton[0]是其第一个字符,即#'。

可能需要使用options.slideDowns代替options.continueButton,因为您正在遍历其属性:

for (var slider in options.slideDowns){
    console.log('did this work?' , slider , options.slideDowns[slider])
    $(options.slideDowns[slider]).slideDown();  
}