jQuery - 检查DOM元素是否已存在

Dan*_*Dan 71 jquery

我试图通过Ajax动态添加一些表单元素与jQuery.我想确保我没有两次创建相同的元素,所以我只想添加它,如果它尚未添加到DOM中.

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

$('#data_1')
Run Code Online (Sandbox Code Playgroud)

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

if ($('some_element').length == 0) {
    //Add it to the dom
}
Run Code Online (Sandbox Code Playgroud)

但是,它仅适用于首次加载时已经是页面一部分的元素.

如何检查页面加载后动态创建的元素?

任何建议表示赞赏.

谢谢.

rah*_*hul 107

这应该适用于所有元素,无论它们何时生成.

if($('some_element').length == 0) {
}
Run Code Online (Sandbox Code Playgroud)

在ajax回调函数中编写代码,它应该可以正常工作.

  • 如果使用严格比较"==="而不是"=="可能会更好.只是一个最好的做法. (20认同)

sre*_*ree 14

只是为了确认您正在以正确的方式选择元素.试试这个吧

if ($('#some_element').length == 0) {
    //Add it to the dom
}
Run Code Online (Sandbox Code Playgroud)


Col*_*tor 13

这个问题是关于元素是否存在以及所有答案都检查它是否存在:)微小差异但值得一提.

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

if ($( "#myDiv" ).length) {
    // element exists
}
Run Code Online (Sandbox Code Playgroud)

如果您希望检查缺少的元素,可以使用以下任一方法:

if (!$( "#myDiv" ).length) {
    // element doesn't exist
}
Run Code Online (Sandbox Code Playgroud)

要么

if (0 === $( "#myDiv" ).length) {
    // element doesn't exist
}
Run Code Online (Sandbox Code Playgroud)

请注意,在第二个选项中,我使用了===,它比==略快,并将左边的0作为Yoda条件.


San*_*kha 6

猜你忘了将项目附加到DOM.

这里查看.