【发布时间】:2018-11-15 08:34:35
【问题描述】:
有这么一块地方怎么
$(document).on('click', '#calcA', function() {
$("#calcASum").addClass("field");
($(this).is(":checked")) ? $("#calcAInfo").css("display", "") : $("#calcAInfo").css("display", "none");
});
$(document).on('click', '#calcB', function() {
$("#calcBSum").addClass("field");
($(this).is(":checked")) ? $("#calcBInfo").css("display", "") : $("#calcBInfo").css("display", "none");
});
$(document).on('click', '#calcC', function() {
$("#calcCSum").addClass("field");
($(this).is(":checked")) ? $("#calcCInfo").css("display", "") : $("#calcCInfo").css("display", "none");
});
只有 AB 和 C 变化; 我想写for ()
var item = ['A', 'B', 'C'];
for(var i=0; i<item.length; i++) {
$(document).on('click', '#calc'+item[i], function() {
$("#calc"+item[i]+"Sum").addClass("field");
($(this).is(":checked")) ? $("#calc"+item[i]+"Info").css("display", "") : $("#calc"+item[i]+"Info").css("display", "none");
});
}
他在点击功能之后又增加了一项功能。事实证明,函数内部已经 i = 3。这个问题还有其他解决方案吗?谢谢
【问题讨论】:
-
最简单的解决方案是不使用具有语义含义的 ID。使用 DOM 遍历查找相关的 Sum/Info 字段或将它们与
data-属性配对。