Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查jQuery中是否存在id为的元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何检查jQuery中是否存在id为的元素?

Javascript 如何检查jQuery中是否存在id为的元素?,javascript,jquery,html,Javascript,Jquery,Html,我正在动态生成一个div,我必须检查动态生成的div是否存在?我该怎么做 目前,我正在使用下面的方法,它不会检测动态生成的div。它只检测HTML模板中是否已经存在id为的元素 $(function() { var $mydiv = $("#liveGraph_id"); if ($mydiv.length){ alert("HHH"); } }); 如何检测动态生成的div?如何插入动态生成的div 如果您按照以下方式进行操作,它将起作用: var d

我正在动态生成一个div,我必须检查动态生成的div是否存在?我该怎么做

目前,我正在使用下面的方法,它不会检测动态生成的div。它只检测HTML模板中是否已经存在id为的元素

$(function() {
    var $mydiv = $("#liveGraph_id");
    if ($mydiv.length){
        alert("HHH");
    }
});

如何检测动态生成的div?

如何插入动态生成的div

如果您按照以下方式进行操作,它将起作用:

var div = document.createElement('div');
div.id = 'liveGraph_id';
div.innerHTML = "i'm dynamic";
document.getElementsByTagName('body')[0].appendChild(div);
if ($(div).length > 0) {
    alert('exists'); //will give alert
}
if ($('#liveGraph_id').length > 0) {
    alert('exists'); //will give alert
}
if ($('#liveGraph_id_extra').length > 0) {
    alert('exists'); //wont give alert because it doesn't exist.
}

.

如果以友好方式添加,则必须再次测试。比如说,点击事件

$("#element").click(function()
{
    if($("#liveGraph_id").length)
        alert("HHH");
});

如果由于它们的原因而无法选择,则必须包含实际将
插入
文档的代码

一个选项是将自定义事件用作事件


出于兴趣,您还可以为此使用live集合(它们作为DOM的一部分提供)。您可以在页面中设置所有div的集合(这可以在加载主体之前在头部完成):

任何id为的div都可以作为集合的命名属性使用,因此您可以执行以下操作:

if (allDivs.someId) {
  // div with someId exists
}
如果ID不是有效标识符,或者它保存在变量中,请使用方括号表示法。一些播放代码:

<button onclick="
  alert(!!allDivs.newDiv);
">Check for div</button>
<button onclick="
  var div = document.createElement('div');
  div.id = 'newDiv';
  document.body.appendChild(div);
">Add div</button>
检查div
添加div

单击Checkfordiv按钮,您将得到
false
。单击adddiv按钮添加div,然后再次检查,您将得到
true

就是这么简单

   if(document.getElementById("idname")){
//div exists 

}


您是否可以控制自动生成的div?如果是这样,则在添加元素时执行该步骤。通过
检测动态生成的div
,您到底想检测什么?您需要在创建元素后执行该步骤。如果您想知道元素何时添加到
文档中,可能会有用。如果($mydiv.length>0)我已经意识到了这一点,但是我不是在jQuery中创建div,而是在python(后端)中创建div。这就是我的表现
portlet_div_str+=“但是如何在文档中添加它呢?如果不添加,就无法检查它是否存在。我在模板中使用django语法调用它,{{{code>{{%autoescape off%}{{portlet_div_str}{%endautoescape%}
随时检查它是否存在。
$(function(){…})
在加载DOM后执行。如果以后添加元素,则必须再次运行测试。(不一定在单击事件上)为什么会被否决?看起来这只是一个事件监听器的示例内容路径意味着什么?@user1162512这只是一个示例URL路径。您在评论中提到,
是用Python编写的,所以假设检索它时涉及Ajax。不。在这个特定情况下不涉及Ajax。我只是转发这个str当页面第一次加载或刷新页面时,将HTML元素添加到模板上。这就是我的操作方式。
返回render_to_response('dashboard/widget_dashboard.HTML',{'HTMLstr':HTMLstr},context_instance=RequestContext(request))
在模板中,我通过
{%if HTMLstr%}调用该HTML元素字符串{%autoescape off%}{{HTMLstr}{%endautoescape%}{%else%}
只要喜欢那些驱动-通过向下投票。好吧,没有jQuery(因此“只是为了兴趣”),但还有什么呢?
if (allDivs.someId) {
  // div with someId exists
}
<button onclick="
  alert(!!allDivs.newDiv);
">Check for div</button>
<button onclick="
  var div = document.createElement('div');
  div.id = 'newDiv';
  document.body.appendChild(div);
">Add div</button>
   if(document.getElementById("idname")){
//div exists 

}
    if(!document.getElementById("idname")){
//  don't exists
}