gpt4 book ai didi

javascript - 如何避免 JavaScript 中的重复?

转载 作者:行者123 更新时间:2023-11-28 08:21:02 25 4
gpt4 key购买 nike

如何避免这种重复的代码?我是 JavaScript 新手。我需要使用不同的参数调用同一个函数,例如 100 次,并且还有大约 100 个不同的 getElementBys

(function() {

var ok, publicSessionID, sms, a, b, c, d, e, f, g, h, i, j;

var pubnub = PUBNUB.init({
subscribe_key: '',
publish_key: ''
});


function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
};

var publicSessionID = getParameterByName('tv') || 'default';
var sms = getParameterByName('sms') || 'default';
var a = document.getElementById("channel1");
var b = document.getElementById("channel2");
var c = document.getElementById("channel3");


d.onclick = function() {
pubnub.publish({
channel: publicSessionID,
message: {
"action": "tv.new.channel.4"
}
uuid: sms,
callback: function(info) {
console.log(JSON.stringify(info));
}
})
return false;
};

e.onclick = function() {
pubnub.publish({
channel: publicSessionID,
message: {
"action": "tv.new.channel.5"
}
uuid: sms,
callback: function(info) {
console.log(JSON.stringify(info));
}
});
return false;
};

f.onclick = function() {
pubnub.publish({
channel: publicSessionID,
message: {
"action": "tv.new.channel.6"
}
uuid: sms,
callback: function(info) {
console.log(JSON.stringify(info));
}
});
return false;
};
})()

var a, 到 z 将会变得重复和a.onclick = function () {} 变得重复,有哪些更有效的方法可以在 js 中实现此目的?

谢谢

最佳答案

function pubnub (channel) {
pubnub.publish({
channel : publicSessionID,
message : {"action": "tv.new.channel.5"} //use channel here
uuid : sms ,
callback : function(info) {
console.log(JSON.stringify(info));
}
});
return false;
};

只需将其设置为带有 channel 参数的函数,然后像这样调用

e.onclick = function() { pubnub(5); }

请注意,onclick 只允许一个事件,因此请考虑使用 addEventListener

关于javascript - 如何避免 JavaScript 中的重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22978305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com