即使在之前的console.log上,if语句也没有运行,表明该语句应该运行

时间:2019-10-21 11:59:55

标签: javascript jquery

我正在尝试将javascript属性设置为true。我首先在控制台中检查if语句是否应该运行。根据,应该。我确定我做错了什么,但我不知道怎么办。

在控制台中,它是相同的ID。

$(document).click(function (e) {
//Selects the current HTMl element and gets its id
let questionId = $(e.target).parent().attr('id');

for (let i in wholeSurvey['formCategories']) {
    let cat = wholeSurvey['formCategories'][i];
    let catId = cat.id;

    for (let question in cat['formQuestions']) {
        question = cat['formQuestions'][question];
        console.error('question.id: ', question.id, 'questionId: ', questionId);

        if (question.id === questionId) {
            console.log('Hi');
            question.done = true;
            console.info(question);
        }
    }

    cat = wholeSurvey['formCategories'][i]['formQuestions'];

    if ($(cat).last()[0].done === true) {
        console.log($(cat).last());
        $("#A" + catId).css('background-color', '#46AD58').text('');
    }
  }
});

我希望它可以使问题的解决方案变成事实,但目前没有任何变化,它完全“跳过”了if语句。

欢迎所有帮助,对于语法和拼写错误感到抱歉。

1 个答案:

答案 0 :(得分:0)

questionId的确是一个字符串,如@Nick在评论中所述。我使用parseInt()将questionId设为数字。我使用了这个网站: gomakethings.com