更有动态地编写此脚本的好方法是什么:
我有一个变量,其值最多可达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
答案 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为$count
和18
之间的所有输入
答案 4 :(得分:0)
最简单的方法是使用Template-Strings
的变量循环
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;
答案 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();