1. ホーム
  2. javascript

[解決済み] JSlint: 予期しない 'for' [重複].

2022-02-07 01:13:57

質問

ラジオボタンでテストしています。 JS lintを通すまでは、すべてがうまくいっているように見えました。 私は1つを除いてすべてのエラーを修正しました。

予期せぬ 'for'

for (i = 0; i < radios.length; i += 1) {

以下は私のJavascriptです。

/*global body,window,document,alert*/
(function () {
"use strict";

var UIlogic;

UIlogic = {
    myLoad: function () {
        var elems, elemText, btn1, winter, summer, fall, spring, header, btns;

        winter = "<div><input type='radio' name='cb' id='cbA' value='0'/><label for='cbA'>Winter</label></div>";
        summer = "<div><input type='radio' name='cb' id='cbB' value='1'/><label for='cbB'>Summer</label></div>";
        fall = "<div><input type='radio' name='cb' id='cbC' value='2'/><label for='cbC'>Fall</label></div>";
        spring = "<div><input type='radio' name='cb' id='cbD' value='3'/><label for='cbD'>Spring</label></div>";

        header = "Header";

        btns = "<br /><button class='btns' id='btn1'>Go!</button>";

        elemText = "Menu/nav";

        elems = "<center><div>" + header + "</div></center>";//title
        elems += "<div>" + elemText + "</div></center>";//menu
        elems += "<div id='container'><br />";//container opens
        elems += "<div id='div1'>" + winter + "</div>";
        elems += "<div id='div2'>" + summer + "</div>";
        elems += "<div id='div2'>" + fall + "</div>";
        elems += "<div id='div2'>" + spring + "</div>";
        elems += "<div id='div3'>" + btns + "</div>";
        elems += "</div>";//container closes
        elems += "<h6><div id='footer'>Ehawk 2015</div></h6>";

        body.innerHTML = elems;
        btn1 = document.getElementById("btn1");
        btn1.addEventListener('click', UIlogic.intoFunction, false);

    },
    intoFunction: function () {
        var radios, found, i = 0;
        radios = document.getElementsByName("cb");
        found = 1;
        for (i = 0; i < radios.length; i += 1) {//issue occurs here
            if (radios[i].checked) {
                alert(radios[i].value);
                found = 0;
                break;
            }
        }
        if (found === 1) {
            alert("Please Select Radio");
        }
    }
};
window.onload = function () {
    UIlogic.myLoad();
};
}());

ループの実行方法が間違っているのでしょうか?コードが動作しているにもかかわらず、なぜJSlintはここに問題を見出すのでしょうか? 私はループについて最も問題を抱えているので、ループについての洞察を得ることができました。 私はそれらを使用しないように言われましたが、私はラジオボタンとチェックされたラジオを検出するためにループを実行することに問題があるとは思わない。 これは私が心配する必要があるものですか?

どのように解決するのですか?

JSLintは、forEachなどの他のループを使用することを提案します。 http://www.jslint.com/help.html#for

もしこれが気になるようなら、一番下の大目に見る "for statement" オプションを選択すればいいのですが、コードは問題ないようです。