Javascript 如果元素存在,则执行一些代码

Javascript 如果元素存在,则执行一些代码,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,如果这个元素存在,我想使用jquery执行一些代码 我的代码到现在为止: setInterval(function(){check()}, 100); function check() { var count = document.getElementById("count"); if(document.getElementById("element") && count.value != 1) { //some code count.va

如果这个元素存在,我想使用jquery执行一些代码

我的代码到现在为止:

setInterval(function(){check()}, 100);

function check() {

   var count = document.getElementById("count");
   if(document.getElementById("element") && count.value != 1) {
      //some code
      count.value = 1;
   }

}
它是有效的,但我认为这是一个非常糟糕的方式来达到我的目标。
我想要一个更简单的解决方案,但我没有找到。

你的方法是最可靠的,因为它不会失败


但是,您可能希望尝试侦听
count
元素上的
change
事件,并在
元素存在时重置该值。这意味着您的验证代码仅在对值进行更改时运行。

是否要首先执行此操作

你怎么做的

$(document).ready(function(){
  if($(#element)) { do something };
});
编辑:

搜索10秒后:

$("#someDiv").bind("DOMSubtreeModified", function() {
    alert("tree changed");
});
您可以侦听DOM事件(当插入或修改元素时)并仅在此时检查您的条件,而不是每次间隔


如果您需要一些关于DOM事件的信息,您可以查看:(突变事件)

我可以想到的一个解决方案是使用类似

jQuery(函数(){
if(window.MutationObserver){
var target=document.querySelector(“#myparent”);
//创建一个观察者实例
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
[].forEach.call(mutation.addedNodes,function(el,i){
如果(el.id=='element'){
检查();
//如果不想再听下去,请删除侦听器
//observer.disconnect();
}
})
});
});
//观察员的配置:
变量配置={
儿童名单:对
};
//传入目标节点以及观察者选项
observer.observe(目标,配置);
}否则{
setInterval(函数(){
if(document.getElementById(“元素”)){
检查();
}
}, 100);
}
函数检查(){
var count=document.getElementById(“count”);
如果(count.value!=1){
//一些代码
count.value=1;
}
}
});
$(“按钮”)。单击(函数(){
$('#myparent')。追加('Some text');
});

添加

您可以查看—如果不支持,请使用您现在的方式—您正在做正确的事情。如果你想使用jQuery,你可以看看这个函数,我觉得当前的代码很好,只是我会把
getElementById(“count”)
移到if里面,因为你不在if外面使用
count
。您可以将
setInterval
部分简化为
setInterval(检查,100)。另一种方法是使用CSS3转换事件,但更好的方法是解释可以向DOM中添加或不添加此特定元素的内容。如果是ajax请求,则使用相关方法作为成功回调来检查它。问题显然是试图监视一个值,并在给定元素存在时锁定它。你的答案没有帮助…然后试着通读jquery文档,找到一个能做你想做的事情的处理程序,或者继续你怎么做。。。就像你喜欢帮助别人的方式我编辑了我的评论。。。现在,您可以找到一个类似$(body)的选择器来在DOMsubtreeModified事件上注册处理程序。。。这将在DOM的子树发生某些事情时识别-非常直接。。。而且不需要做这些事。。。通常使用
domsubtreemedited
时,您希望尽可能地向下注册处理程序,并且几乎从不在
主体上注册。是的,然后这样做!我不知道你想在哪里“倾听”变化-我想你最清楚!!!!:D:D:D:D:D“因为它不能失败”-除非如果
count
元素不存在,它会给出一个错误。@nnnnnn无所谓,因为在这种情况下,无论如何都没有什么可做的,而且它是异步代码(以
间隔独立运行),它不会阻止进一步的代码运行。缺少计数器是一种错误情况,因此在此处抛出错误是正确的。但是哪些浏览器支持DOM事件?维基百科页面上的突变事件现在已被弃用。。。