我正在尝试使用jQuery通过Ajax动态添加一些表单元素。 我想确保我没有两次创建相同的元素,所以我只想添加它,如果它尚未添加到DOM中。
我的所有元素都有唯一的CSS ID,例如:
$('#data_1')
我使用以下内容检查元素是否已存在:
if ($('some_element').length == 0) {
//Add it to the dom
}
但是,它仅适用于首次加载时已经是页面一部分的元素。
如何检查页面加载后动态创建的元素?
感谢任何建议。
感谢。
答案 0 :(得分:102)
这适用于所有元素,无论它们何时生成。
if($('some_element').length == 0) {
}
在ajax回调函数中编写代码,它应该可以正常工作。
答案 1 :(得分:13)
确认您正在以正确的方式选择元素。 试试这个
if ($('#some_element').length == 0) {
//Add it to the dom
}
答案 2 :(得分:8)
这个问题是关于元素是否存在以及所有答案都检查它是否存在:)微小差异但值得一提。
基于jQuery documentation,检查存在的推荐方法是
if ($( "#myDiv" ).length) {
// element exists
}
如果您想检查缺少的元素,可以使用:
if (!$( "#myDiv" ).length) {
// element doesn't exist
}
或
if (0 === $( "#myDiv" ).length) {
// element doesn't exist
}
请注意,在第二个选项中,我使用了===,这比==略快,并将左边的0作为Yoda condition。
答案 3 :(得分:6)
猜猜你忘了把这个项目附加到DOM。
检查HERE。
答案 4 :(得分:2)
如果ID
可用 - 您可以使用getElementById()
var element = document.getElementById('elementId');
if (typeof(element) != 'undefined' && element != null)
{
// exists.
}
或尝试使用Jquery -
if ($(document).find(yourElement).length == 0)
{
// -- Not Exist
}
答案 5 :(得分:1)
(()=> {
var elem = document.querySelector('.elem');
(
(elem) ?
console.log(elem+' was found.') :
console.log('not found')
)
})();
如果存在,则将指定的元素作为DOM对象吐出。使用JQuery $('.elem')
它只会告诉你它是一个对象,如果找到但不是哪个。
答案 6 :(得分:0)
在这种情况下,您可能想要检查当前DOM中是否存在元素
如果要检查DOM树中是否存在元素(附加到DOM),可以使用:
#
答案 7 :(得分:0)
if ($('#some_element').length === 0) {
//If exists then do manipulations
}
答案 8 :(得分:0)
不能比较任何东西,你可以简单地检查一下......,。
if(document.getElementById("url")){ alert('exit');}
if($("#url")){alert('exist');}
您也可以使用html()函数,例如
if($("#url).html()){alert('exist');}
答案 9 :(得分:0)
也考虑使用
$(document).ready(function() {});
不知道为什么这里没有人想到这个(有点遗憾)。您何时执行代码???一开始就对吗?然后,您可能想使用上面提到的ready()函数,以便在加载整个页面(包括所有dom元素)之后而不是在加载之前执行代码!当然,如果您运行一些在页面加载后添加dom元素的代码,这将毫无用处!然后,您只想等待这些功能,然后再执行代码...