在我目前的项目中,我有这样的多行:
$$(document).on('change','#x1', function () {
console.log('fired');
});
$$(document).on('change','#x2', function () {
console.log('fired');
});
$$(document).on('change','#x3', function () {
console.log('fired');
});
Run Code Online (Sandbox Code Playgroud)
是否有可能用一些for循环替换它?(我的例子不起作用)
for (var i = 1; i < 4; i++) {
$$(document).on('change','#x'+i, function () {
});
}
Run Code Online (Sandbox Code Playgroud)
不需要循环使用逗号分隔的多个选择器.
$$(document).on('change','#x1,#x2,#x3', function () {
console.log('fired');
});
Run Code Online (Sandbox Code Playgroud)
如果有n个选择器,那么您可以使用for循环生成选择器.
var sel = '';
for (var i = 1; i < 4; i++) {
sel += (i > 1? ',' : '') + '#x' + i;
}
Run Code Online (Sandbox Code Playgroud)
ES6替代品
var sel = Array.from({ length:3 },(_, i) => '#x' + (i + 1)).join(',');
Run Code Online (Sandbox Code Playgroud)
另一种选择是属性入手选择,但它会选择所有元素在那里它id是开始x.
$$(document).on('change','[id^="x"]', function () {
console.log('fired');
});
Run Code Online (Sandbox Code Playgroud)