jQuery如何删除未定义的第一个元素?

jQuery如何删除未定义的第一个元素?,jquery,arrays,Jquery,Arrays,我想在jquery数组中存储一些值。但问题是它会自动添加第一个元素——一个空白元素。我写了一个条件,如果第一个元素为空,就删除它。但它甚至没有达到这种状态 我的代码是 var Ids= []; function delImg(newThis){ $(newThis).parent().hide(); var Id = $(newThis).siblings('.hidden').html(); if (Ids[0] == '') { Ids.splice(

我想在jquery数组中存储一些值。但问题是它会自动添加第一个元素——一个空白元素。我写了一个条件,如果第一个元素为空,就删除它。但它甚至没有达到这种状态

我的代码是

var Ids= [];

function delImg(newThis){
    $(newThis).parent().hide();
    var Id = $(newThis).siblings('.hidden').html();
    if (Ids[0] == '') {
       Ids.splice(0, Ids.length);
       alert('at least getting in to the condition!'); 
    }
    Ids.push(Id);
    alert(Ids);
    return Ids;
}

尝试使用“修剪”时,整个页面无法工作。由于此未定义的元素,当前我在第一个有效元素之前得到一个逗号。

请尝试将if语句更新为:

 if (Ids[0] == undefined)
它会自动添加第一个元素

实际上不可能。问题出在别处。我怀疑可能是这样的:

var Id = $(newThis).siblings('.hidden').html();
在对delImg的第一次调用期间,具有隐藏类的第一个同级可能没有任何html内容或自身不存在

顺便说一句,您需要重新考虑这一行。您正在尝试获取哪个兄弟的html内容?选择器将把所有同级元素与隐藏类匹配,从而返回一个集合。在这种情况下,您的语句将只返回第一个元素的内容。最好明确告知提取哪个兄弟姐妹:

var Id = $(newThis).siblings('.hidden').first().html();

你能做一把小提琴吗?@downvoter,再一次!!请解释一下你投反对票的原因。这将帮助我提高答案的质量。