2016-09-14 4 views
0

id & nameのフィールドを持つ変数を特定のclassに基づいて作成しようとしています。しかし、何年ものjQueryのおかげで、私のJSはちょっと錆びています。変数にループしてから印刷するvar

私のコードはhereです。

だから、最初のオフ、私はクラスinvalidがクラスinvalidを持っている各要素のname attribute & ID attributeを見つけるために、ループを実行し、その後存在するならば、clickをチェックしています。

その後、それをarrayに追加し、arrayを印刷します。

十分にシンプルだけど、ボールを弾いていないようです。 JSのループと同じように単純なものを出すことができるはずなので、私はjQueryを何年も使っていることを非難しています。しかし、私は紛失しているので、なぜコンソールログにプリントを取得しないのかというエラーを見つけられないようです。

document.getElementById("submiter").onclick = function() { 
 
    errorLoop(); 
 
}; 
 

 
function errorLoop() { 
 
    var errClass = element.classList.contains("invalid"), 
 
     runner = document.document.getElementsByClassName("invalid"), 
 
     dataL = []; 
 

 

 
    if (errClass) { 
 

 
     for (var i = 0; i < runner.length; i++) { 
 
     var errName = runner.getAttribute("name"), 
 
      errId = runner.getAttribute("id"); 
 

 
     dataL.push("Name: " + errName + " - ID: " + errId +", "); 
 
     } //End for 
 

 
     dataL.toString(); 
 

 
     console.debug(dataL); 
 

 
     dataLayer.push({ 
 
     "validationError": "datal" 
 
     }); 
 

 
    } //End if 
 
    } //End errorLoop
<input type="radio" id="tiMs" name="ti" value="Ms" tabindex="16" class="invalid"> 
 
<input type="radio" id="tiMiss" name="ti" value="Miss" tabindex="17" class="invalid"> 
 
<input type="radio" id="tiMiss" name="hol" value="Miss" tabindex="17" class="invalid"> 
 
<a href="#" id="submiter"> 
 
    <strong>clickit</strong> 
 
</a>

+0

を助けるかもしれない試してみてください。 –

+0

この行から '+'記号を削除します。 'Distribute(dataL.push(" Name: "+ errName +" - ID: "+ errId +)); ' ie「配布する(dataL.push( "Name:" + errName + " - ID:" + errId)); '" –

答えて

1

変更されたコードをあなたの条件に応じて

function foo() { 
 
\t \t errorLoop(); 
 
\t } 
 

 
\t function errorLoop() { 
 
\t \t var runner = document.getElementsByClassName("invalid"), dataL = []; 
 
\t \t 
 

 
\t \t if (runner) { 
 

 
\t \t \t for (var i = 0; i < runner.length; i++) { 
 
\t \t \t \t var errName = runner[i].getAttribute("name"), errId = runner[i] 
 
\t \t \t \t \t \t .getAttribute("id"); 
 

 
\t \t \t \t dataL.push("Name: " + errName + " - ID: " + errId); 
 
\t \t \t } //End for 
 

 
\t \t \t dataL.toString(); 
 
      console.log(dataL) 
 

 
\t \t \t console.debug(dataL); 
 

 
\t \t \t 
 

 
\t \t } //End if 
 
\t } //End errorLoop
<input type="radio" id="tiMs" name="ti" value="Ms" tabindex="16" 
 
\t \t class="invalid"> 
 
\t <input type="radio" id="tiMiss" name="ti" value="Miss" tabindex="17" 
 
\t \t class="invalid"> 
 
\t <input type="radio" id="tiMiss" name="hol" value="Miss" tabindex="17" 
 
\t \t class="invalid"> 
 
\t <a href="#" id="submiter" onclick="foo()"> <strong>clickit</strong> 
 
\t </a>

+0

クリック機能では、HTMLの中に入れることができない理由がありましたそれを見て考えると – DCdaz

+0

@DCdazは他に何か必要ですか?またはこれは正常に動作しています – Abhijeet

+0

変更した内容とその問題点を説明できますか?コードを投稿するだけでは他の訪問者にとってあまり役に立ちません。 –

0

あなたは変化の下に試すことがあります。

function errorLoop() { 
    var errClass = element.classList.contains("invalid"), 
    runner = document.getElementsByClassName("invalid"), // removed document 
    dataL = []; 


if (errClass) { 

    for (var i = 0; i < runner.length; i++) { 
    var errName = runner[i].getAttribute("name"), //used index 
     errId = runner[i].getAttribute("id"); 

    //.... 
    } //End for 

} 

    //.... 
} 
0

この意志はあなたが配布行に構文エラーを持っているあなたに

$(document).ready(function(){ 
var arrNumber = new Array(); 
$('#submiter').on('click',function(){ 
    $('input[type=radio]:checked').each(function(){ 
    if($(this).attr('class')=='invalid'){ 
     arrNumber.push($(this).attr('id')+' => '+$(this).attr('name')); 
    } 
    }); 
    console.log(arrNumber); 
    }); 

}); 
+0

Thats jQuery not Javascript – DCdaz

関連する問題