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

时间:2013-11-20 06:09:17

标签: jquery arrays

我想在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;
}

当尝试使用trim()时,整个页面都不起作用。目前我在第一个有效元素之前得到一个逗号,因为这个“未定义”元素。

2 个答案:

答案 0 :(得分:0)

尝试将if语句更新为:

 if (Ids[0] == undefined)

答案 1 :(得分:-2)

  

它会自动添加第一个元素

实际上并非如此。问题出在其他地方。我怀疑它可能就在这条线上:

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

在第一次调用delImg期间,第一个hidden类的兄弟可能没有任何HTML内容或者本身不存在。

作为一个,您可能需要重新考虑这一行。你试图得到哪个兄弟的HTML内容?您的选择器将匹配具有hidden类的所有同级元素,因此返回一个集合。在这种情况下,您的声明将返回第一个元素的内容。最好明确告诉要提取哪个兄弟:

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