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条件 。