我需要在我的代码中点击删除时从数组中删除一个选择的元素, 但到目前为止我无法达成目标。 我试图将当前数组值与标记值进行比较,如果它们相等, 从数组中删除该值 我想我在过程中遗漏了一些东西 需要总和指导))))谢谢 这是我的js代码
$(function(){
var tableHead =
"<table>" +
"<tr>" +
"<th class='sort'>Id sort</th>" +
"<th>Name</th>" +
"<th>Surname</th>" +
"<th>Birthday</th>" +
"<th>Filter</th>" +
"<th class='addList'>+</th>" +
"</tr>" +
"</table>";
$('body').html(tableHead);
var name = "<input type='text' class='name' placeholder='First name'>";
var surname = "<input type='text' class='surname' placeholder='Surname'>";
var bDayDate ="<input type='date' class='bDayDate' placeholder='Bday'>";
var addList = $('.addList');
var idNum = 0;
var arrNum= [];
var sortedArr = [];
addList.on("click", function(){
idNum++;
var tr = $("<tr></tr>");
for(var i = 1; i <= 6; i++){
var td = $('<td></td>');
tr.addClass(""+ idNum);
switch (i){
case 1:
td.addClass(""+ idNum);
td.html(idNum);
break;
case 2: td.html(name);
break;
case 3: td.html(surname);
break;
case 4: td.html(bDayDate);
break;
case 5: td.html(1);
break;
case 6:
td.html("Delete");
td.addClass('delete');
break;
default:
return console.log("OooPs!!");
}
tr.append(td);
}
var value;
arrNum.push(tr);
$('table').append(arrNum);
arrNum.forEach(function(val,i){
value = val
});
$('.delete').on("click", function(){
$(this).parent().remove();
var that = $(this).parent();
for(var k = 0;k <arrNum.length - 1; k++){
if(that[k] === value[k]){
arrNum.splice(k,1)
} else {
console.log("wrong!!")
}
}
});
for(var j = arrNum.length; j >= 0; j--){
sortedArr.push(arrNum[j]);
}
$(".sort").on("click", function(){
$('table').append(sortedArr);
$('.delete').on("click", function(){
$(this).parent().remove();
});
});
});
});
答案 0 :(得分:0)
尝试此更改,在删除事件中调用此函数
function removeItem(item, arr, sArr)
{
var that = $(item).parent();
$(item).parent().remove();
for(var k = 0;k <arr.length; k++)
{
if(arr[k] && that[0] === arr[k][0])
{
arr.splice(k,1);
} else {
console.log("wrong!!")
}
}
// If you want delete when sort the table
for(var k = 0;k <sArr.length; k++)
{
if(sArr[k] && that[0] === sArr[k][0])
{
sArr.splice(k,1);
} else {
console.log("wrong!!")
}
}
}
并致电:
$('.delete').on("click", function()
{
removeItem(this, arrNum, sortedArr);
});
答案 1 :(得分:0)
您可以使用grep
arrNum= $.grep(arrNum, function(e) {
return e != value ;
});