如何使用jQuery检查元素是否已添加到页面?

all*_*tta 0 javascript jquery

所以我使用无限滚动,当我滚动x个像素数量时,会向页面添加新对象.但是如何使用jQuery检查是否在页面中添加了新元素(classid)?

(我想检查一下,因为如果添加了一个新元素,我想在新元素上做一些jQuery).

Kyl*_*lie 6

只需使用.length,检查它是否存在,在append()之后

$('#elemId').length;
Run Code Online (Sandbox Code Playgroud)

像这样......

if($('#elemId').length > 0){ //your code here };
Run Code Online (Sandbox Code Playgroud)

或者写自己的功能....

jQuery.fn.Exists = function(){
    return jQuery(this).length > 0;
};
Run Code Online (Sandbox Code Playgroud)

然后用它来返回真或假......

if($('#elemId').Exists()){ //your code here };  
Run Code Online (Sandbox Code Playgroud)

或者你可以使用livequery()插件......

$('#elemID').livequery(function()
{
// do things here like binding new events and stuff.
// this function is called when an object is added.
// check the API for the deletion function and so on.
});
Run Code Online (Sandbox Code Playgroud)

我似乎无法在jQuery网站上找到该插件,但它确实存在于某一点上

你也可以试试DOMNodeInserted ......

$(document).bind('DOMNodeInserted', function(e) {
console.log(e.target, ' was inserted');
});
Run Code Online (Sandbox Code Playgroud)

如果您的选择器始终相同,您可以使用on()....

例如,当你滚动时,你总是添加一个名为class ="newDiv"的新div ....

然后你要执行的jquery ....如果你想绑定一个事件来点击...

$(document).on( 'click', '.newDiv', function(){ //your code here
 });
Run Code Online (Sandbox Code Playgroud)