我目前正在为我的项目使用此代码,但我可以提供帮助,但感觉可以使用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#
答案 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")
,依此类推。