2017-07-09 29 views
0

私は現在、このコードを自分のプロジェクトに使用していますが、代わりにfor文を使用できると感じています。for文はjQueryでどのように機能しますか?

$("#login-1").text($("#" + iconId).data("login1")); 
$("#login-1").click(function() { 
    var send=''; 
    send += $("#" + iconId).data("name")+"</br>"; 
    send += $("#" + iconId).data("login1")+"</br>"; 
    send += $("#" + iconId).data("username1")+"</br>"; 
    send += $("#" + iconId).data("password1")+"</br>"; 
    $("#post").html(send); 
    cancel(); 
}); 

$("#login-2").text($("#" + iconId).data("login2")); 
$("#login-2").click(function() { 
    var send=''; 
    send += $("#" + iconId).data("name")+"</br>"; 
    send += $("#" + iconId).data("login2")+"</br>"; 
    send += $("#" + iconId).data("username2")+"</br>"; 
    send += $("#" + iconId).data("password2")+"</br>"; 
    $("#post").html(send); 
    cancel(); 
}); 

$("#login-3").text($("#" + iconId).data("login3")); 
$("#login-3").click(function() { 
    var send=''; 
    send += $("#" + iconId).data("name")+"</br>"; 
    send += $("#" + iconId).data("login3")+"</br>"; 
    send += $("#" + iconId).data("username3")+"</br>"; 
    send += $("#" + iconId).data("password3")+"</br>"; 
    $("#post").html(send); 
    cancel(); 
}); 

コードの行のほとんどの間で変化する唯一のものは、あなたが使用することができlogin# username# password#

+0

あなたの質問は、* "どのようにクラスはHTMLで動作するのですか" *! – adeneo

答えて

0

の数です:

$("#login-1,#login-2,#login-3").click(function(){ 
    ... 
}); 

内側$(this)に基づいてコードを変更します。 iconIdは、同一または変更であれば、私は、わからない

doChanges(1, iconId); 
doChanges(2, iconId); 
doChanges(3, iconId); 

function doChanges(number, iconId) { 
    $("#login-" + number).text($("#" + iconId).data("login" + number)); 
    $("#login-" + number).click(function() { 
    var send = ''; 
    send += $("#" + iconId).data("name") + "</br>"; 
    send += $("#" + iconId).data("login" + number) + "</br>"; 
    send += $("#" + iconId).data("username" + number) + "</br>"; 
    send += $("#" + iconId).data("password" + number) + "</br>"; 
    $("#post").html(send); 
    cancel(); 
    }); 
} 

例:ここでは

0

は、関数を作成し、必要な引数を渡すことで最適化する方法です。同じであれば、それを関数の引数から取り除くことができます。

0
function looping(length) { 
    for(var i=1;i<=length;i++) { 
    $("#login-"+i).text($("#" + iconId).data("login"+1)); 
    $("#login-"+i).click(function() { 
     var send=''; 
     send += $("#" + iconId).data("name")+"</br>"; 
     send += $("#" + iconId).data("login"+i)+"</br>"; 
     send += $("#" + iconId).data("username"+i)+"</br>"; 
     send += $("#" + iconId).data("password"+i)+"</br>"; 
     $("#post").html(send); 
     cancel(); 
    }); 
    } 
} 
looping(3); 

私はこれがあなたが期待していると思います。 '+'演算子は、ループ内の数値である変数iを連結します。 $("#login-"+i)ここで初めて("#login1")と表示され、i=2の場合は("#login2")となります。

+0

あなたはそうだ、これは私が期待していることだが、これはうまくいかない。なぜか分からない。 –

+0

私は質問を編集しました。あなたの質問を解決した場合は、その答えを受け入れてください。 –

関連する問題