我的代码有一些问题。在这里,我将展示我的代码的两个版本,但其中一个无法工作。
使用arguments
关键字的代码不起作用:
$(document).ready(function(){
var data = {
'one':'b',
'two':'c',
'three':'d'
}
function func(){
for(var i=0;i<arguments.length;i++){
$('.a').each(function(){
if($(this).hasClass(data[arguments[i]])){
$(this).css('background','red')
}
})
}
}
func('one','two')
})
body{
margin:0;
pading:0;
height:100vh;
}
.a{
height:50px;
width:50px;
background:green;
margin:20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="a"></div>
<div class="a b"></div>
<div class="a c"></div>
但是,当我使用rest参数...val
时,一切都运行得很好:
$(document).ready(function() {
var data = {
'one': 'b',
'two': 'c',
'three': 'd'
}
function func(...val) {
for (var i = 0; i < val.length; i++) {
$('.a').each(function() {
if ($(this).hasClass(data[val[i]])) {
$(this).css('background', 'red')
}
})
}
}
func('one', 'two')
})
body {
margin: 0;
pading: 0;
height: 100vh;
}
.a {
height: 50px;
width: 50px;
background: green;
margin: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="a"></div>
<div class="a b"></div>
<div class="a c"></div>
如何在不使用...val
和仅使用arguments
关键字的情况下使此代码完美工作?
https://stackoverflow.com/questions/56515101
复制相似问题