如果元素存在于文档中

时间:2013-04-25 09:26:25

标签: javascript jquery

可能的情况是我的函数使用了过时的jquery元素。例如,当我使用close和callback时:

    $("input").each(function () {
       var input = $(this);

       //here for example we remove input from DOM
       //and insert the new one input

       $.ajax(url, function(){
          fun(input)
       }
    });

function fun(input){
//do something
input.val('newValue')
}

问题是:我怎样才能确定变量的引用是否仍然正确。如果元素已被重新处理,我怎样才能获得新输入的新引用(输入没有id和类)?

UPDATE1:我做了一些小更新。我们在函数 fun 中使用旧的输入引用。并且 newValue 将不适用于新输入coz当前输入是旧值。

1 个答案:

答案 0 :(得分:1)

您可以通过检查jQuery对象的长度来检查元素是否存在。例如:

if($(this).length < 1)
{
    // the element no longer exists in the DOM
}

但是,您可以使用jQuery的on()函数将事件绑定到现在或将来存在的元素,也许这比您当前使用的方法更好。例如:

$('body').on('click', 'input', function(e) {  
    // Place your click handler here.
});

This article可能对你来说是值得一读的。