我想遍历一系列项目并对其应用一些代码,但不包括一项(单击的项目)。我试过使用拼接,但我不想删除数组项,只需跳过它即可。在这种情况下,我试图为每个项目删除一个CSS类,但排除的项目除外。
我已经尝试了几种方法,将剪接用于一种我不需要的方法。我也尝试过类似if(array [i] == 3 ||(i-1)= 2){继续;其他{....},但似乎无法正常工作。
var array = ["item1", "item2", "item3"];
var i;
for (i = 0; i < items.length; i++) {
if(array[i] is the excluded one){
skip over}
else { $(items[i]).removeClass('class');
}
没有错误消息,只是无法正常工作。
答案 0 :(得分:1)
使用continue
在以下示例中,我们要排除“ item2” 和固定变量的命名/引用:
var items = ["item1", "item2", "item3"];
var i;
for (i = 0; i < items.length; i++) {
if(items[i] === "item2"){
continue;
}
//$(items[i]).removeClass('class');
document.write(items[i] + "<br>");
}
答案 1 :(得分:0)
数组项是元素的ID吗? -如果需要,则代码中需要id指示符(“ #
”)
$('#' + items[i]).removeClass('class')
编辑-我刚刚注意到您的数组称为“数组”,但是在else块中,您将其称为项目
var items= ["item1", "item2", "item3"];
var i;
for (i = 0; i < items.length; i++) {
if(items[i] is the excluded one){
skip over}
else { $('#' + items[i]).removeClass('class');
}
我仍然认为还有更好的方法-但是尝试使名称相同,看看是否可行。
答案 2 :(得分:0)
我认为您需要这样的东西
<script type="text/javascript">
$(document).ready(function(){
$(".click").click(function(){ //When item with class click is clicked
var items = ["item1", "item2", "item3"];
var i;
var itemid = this.id;
for (i = 0; i < items.length; i++) { //go through array
if(items[i]==itemid){ //check if array item is the same as id of the class click
// Don't do anything, this is the one you clicked
}else{
$("#"+items[i]).removeClass('removeme'); // Remove class of all other with class click
}
}
});
});
</script>
<div class="item1 click removeme" id="item1">Test1</div>
<div class="item2 click removeme" id="item2">Test2</div>
<div class="item3 click removeme" id="item3">Test3</div>
答案 3 :(得分:0)
函数式编程中的经典方式:
const array = ["item1", "item2", "item3"];
// item to ignore
const ignore = "item2";
// use filter to keep only items which are not ignored
const newarray = array.filter((e)=> { return e !== ignore } );
// iterate over remaining
newarray.forEach((e)=> { $(e).removeClass("class"); });