首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重复检查div中的内容,如果发现文本,则显示图像。

重复检查div中的内容,如果发现文本,则显示图像。
EN

Stack Overflow用户
提问于 2015-03-12 15:15:27
回答 1查看 173关注 0票数 0

我有一个html结构,如下所示,也有AJAX,它异步刷新第三个div内的span。我想在div3中反复检查span的内容,是通过API动态添加的。如果它包含'Hi‘,我想在div3中显示图像,否则什么也不显示。

代码语言:javascript
运行
复制
<div id="div1">
  <div id="div2">
   <div id="div3">
       <span>Hi</span>
   </div> 
  </div>
</div>

<script type="text/javascript">
         $(function(){
          (function loopsiloop(){
            setTimeout(function(){
            var tmp = $('#div3').find("span").val();
            if(tmp=='hi'){
            document.getElementById("myChatLinkInfo").innerHTML ='<img src="http://slovnikonline.com/img/hi-ohio-logo.jpg">';
            }
            loopsiloop();
        },4000);
    })();
loopsiloop();
         });
</script>
EN

回答 1

Stack Overflow用户

发布于 2015-03-12 18:43:17

有两种方法可以重复函数:setInterval()setTimout( // call fn inside itself )

从我的经验来看,第二种方式是最好的,因为如果有东西干扰了setInterval功能,它就不会正确地调整它的时间--随着时间的推移,随着setInterval的追赶,你可以得到100%的浏览器使用率(基本上是一个冻结的应用程序)。请参见:

setTimeout还是setInterval?

http://www.erichynds.com/blog/a-recursive-settimeout-pattern

您的代码应该如下所示:

代码语言:javascript
运行
复制
$(function(){
    (function loopsiloop(){
        setTimeout(function(){

            //AJAX below
            var tmp = $('#checkme').val();
            $('#freshme').text(tmp);
            //AJAX ABOVE

            loopsiloop();
        },4000); // <=== 4 sec delay
    })();

    loopsiloop();

}); //END document.ready

jsFiddle演示

下面是一些关于AJAX基础知识的文章:

一个简单的例子

更复杂的例子

根据下拉列表1中的选择填充下拉列表2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29013544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档