jQuery – 检查DOM元素是否已经存在

我正在尝试通过Ajaxdynamic地添加一些表单元素。 我想确保我不会创build相同的元素两次,所以我只想添加它,如果它尚未被添加到DOM。

我所有的元素都有一个唯一的CSS ID,例如:

$('#data_1') 

我正在使用以下来检查元素是否已经存在:

 if ($('some_element').length == 0) { //Add it to the dom } 

但是,它只适用于第一次加载时已经是页面一部分的元素。

我怎样才能检查页面加载后dynamic创build的元素?

任何意见表示赞赏。

谢谢。

这应该适用于所有元素,而不pipe它们何时生成。

 if($('some_element').length == 0) { } 

编写你的代码在Ajaxcallback函数,它应该工作正常。

只是为了确认你是以正确的方式select元素。 试试这个

 if ($('#some_element').length == 0) { //Add it to the dom } 

猜猜你忘了附加到DOM的项目。

这里检查。

如果ID可用 – 可以使用getElementById()

 var element = document.getElementById('elementId'); if (typeof(element) != 'undefined' && element != null) { // exists. } 

或尝试与JQuery的 –

 if ($(document).find(yourElement).length == 0) { // -- Not Exist } 
 (()=> { var elem = document.querySelector('.elem'); ( (elem) ? console.log(elem+' was found.') : console.log('not found') ) })(); 

如果存在,它将指定的元素作为DOM对象吐出。 使用JQuery $('.elem')它只会告诉你,如果find它,它就是一个对象,但是不是。

在这种情况下,您可能需要检查当前DOM中是否存在元素

如果要检查DOM树中是否存在元素(连接到DOM),可以使用:

 var data = $('#data_1'); if(jQuery.contains(document.documentElement, data[0])){ // #data_1 element attached to DOM } else { // is not attached to DOM } 
 if ($('#some_element').length === 0) { //If exists then do manipulations } 

没有比较任何东西,你可以简单地通过这个检查…,。

 if(document.getElementById("url")){ alert('exit');} if($("#url")){alert('exist');} 

你也可以使用html()函数

 if($("#url).html()){alert('exist');} 

这个问题是关于是否存在一个元素,所有的答案检查是否不存在:)小小的差异,但值得一提。

基于jQuery文档推荐的方法来检查是否存在

 if ($( "#myDiv" ).length) { // element exists } 

如果你想检查缺less的元素,你可以使用:

 if (!$( "#myDiv" ).length) { // element doesn't exist } 

要么

 if (0 === $( "#myDiv" ).length) { // element doesn't exist } 

请注意,在第二个选项我已经使用===这比==稍快,并把左边的0作为Yoda条件 。