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