如何在jQuery中使用语句?

时间:2017-07-09 06:19:33

标签: jquery

我目前正在为我的项目使用此代码,但我可以提供帮助,但感觉可以使用for语句。

$("#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#

上的数字

3 个答案:

答案 0 :(得分:0)

您可以使用:

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

并根据$(this)更改内部代码。

答案 1 :(得分:0)

以下是通过创建函数并传递必要参数来优化的方法:

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();
  });
}

示例:

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

我不确定,如果iconId相同或更改。如果相同,你可以从函数参数中删除它,它将更加简化。

答案 2 :(得分: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"),依此类推。