Jquery删除脚本坏编码

时间:2017-03-22 12:19:09

标签: javascript jquery

更有动态地编写此脚本的好方法是什么:

我有一个变量,其值最多可达18。

如果$ count为1,我想删除最多18个。

如果$ count为2,我想删除最多18个。

等等。

        if($count == 1) {
            $('#input-1').remove();
            // remove up to 18
        }
        if($count == 2) {
            $('#input-2').remove();
            // remove up to 18
        }
        if($count == 3) {
            $('#input-3').remove();
            // remove up to 18
        }
        ...
        if($count == 18) {
            $('#input-18').remove();
        }

我这样做了:

            for(var i = 0; i < 18; i++) {
                if($count== i) {
                    $('#input-'+i).remove();
                }
            }

但它不会将div从i删除到18

编辑:(清楚)

我想检查每个,例如$count == i,然后我想从i删除到18

6 个答案:

答案 0 :(得分:2)

这应该做:

for(var i = $count; i <= 18;i++){
   $('#input-'+i).remove();
}

修改

  

我想检查每个,比如$ count == i然后我想从i中删除   18

外部for loop允许我们检查i是否等于$count,如果表达式满足(true),那么我们只需从{i开始另一个循环{1}}。在第二个for loop内,我们开始从i及以后删除元素。

for(var i = 1; i <=18; i++) {
    if($count == i) {
       for(var j = i; j <= 18; j++){
         $('#input-'+j).remove();
       }
      return;
    }
}

注意 - 这将向调用者发送undefined的返回值。但是,如果您愿意,可以指定不同的返回值。

答案 1 :(得分:1)

像这样$("#input-"+$count).remove()

答案 2 :(得分:0)

使用以下内容。!

for (var i = $count; i <= 18; i++) {
  $('#input-' + i).remove();
}

答案 3 :(得分:0)

您可以使用简单的for循环

for(let i=$count;i<=18;i++){
    $('#input-'+i).remove();
}

这将从$count开始迭代到18,并删除ID为$count18之间的所有输入

答案 4 :(得分:0)

最简单的方法是使用Template-Strings

的变量循环

&#13;
&#13;
const addElements = function() {
  // Add elements dynamically
  for (let i = 0; i < 10; i++) {
    const div = `<div id="element-${i}">I\'m ${i}</div>`;
    $('body').append(div);
  }
}

const removeElements = function() {
  // Remove elements dynamically
  for (let i = 0; i < 10; i++) {
    const $div = $(`div#element-${i}`);

    $div.remove();
  }
}


$('#addBtn').on('click', function() {
  addElements();
});

$('#removeBtn').on('click', function() {
  removeElements();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="removeBtn">Remove</button>
<button id="addBtn">Add</button>
&#13;
&#13;
&#13;

答案 5 :(得分:0)

我相信你想要这个:

var start=$('input-'+$count);
var end=$('#input-18').index();
$('input').slice(start,end).remove();

如果您拥有的唯一输入是$('input-1)$('#input-18'),则可以跳过检查并执行以下操作:

  $('input').slice($count-1).remove();