当jquery用于自动刷新时创建了附加的<div>

时间:2016-06-23 10:10:47

标签: php jquery html css

我有3个div具有3个不同的背景&amp;文本打印在div上。每当response.php中的内容被修改时,每个块上的文本都会自动刷新。

问题
创建了额外的2 div,如屏幕截图所示。

目标
我想删除其他div s。

我的代码:

CSS

#container{
    width:50px;
    height:50px;
    background:cornflowerblue;
    color:white;
}
#container2{
    width:50px;
    height:50px;
    background:black;
    color:red;
}
#container3{
    width:50px;
    height:50px;
    background:brown;
    color:yellow;
}

JS / jQuery的

 $(document).ready(function() {
     $("#container").load("response.php");
     var refreshId = setInterval(function() {
         $("#container").load('response.php');
     }, 1000); 

     $("#container2").load("response.php");
     var refreshId = setInterval(function() {
         $("#container2").load('response.php');
     }, 1000);

     $("#container3").load("response.php");
     var refreshId = setInterval(function() {
         $("#container3").load('response.php');
     }, 1000);
     $.ajaxSetup({ cache: false });
});

HTML

<body>
    <div id="container"></div><p>
    <div id="container2"></div><p>
    <div id="container3"></div>
</body></html><p>

response.php

 <?php  
    echo '<div id="container">1</div>';
    echo '<div id="container2">2</div>';
    echo '<div id="container3">3</div>';
 ?>

如何实现我的目标?我使用jQuery的方式是否正确?

enter image description here

3 个答案:

答案 0 :(得分:0)

这是预期的行为。 response.php 包含3个div个你加载3次。
因此3 * 3 = 9。

另一种方式可能是,而不是在加载php文件时加载3 div。只有1.然而,我意识到你无法设置id,因为ID是唯一的。相反,您可以为其提供class个属性(即class="container")。然后,您可以使用:nth-child()通过jQuery选择单个的。例如,如果您想选择/引用第二个div,您可以说:(在jQuery中)

$(".container:nth-child(2)").on('click', function() {
    // do stuff
});

答案 1 :(得分:0)

那是因为无论何时你打电话给.load(&#39; response.php&#39;),其中都有3个回声。你连续三次打电话。

只打电话一次。 尝试创建父类。 现在你有一个包含3个容器的父类。

解决方案: 始终删除所有孩子并致电&#39; response.php&#39;和你的父母一起。

答案 2 :(得分:0)

你可以试试这段代码。但我会说你的问题是99%明确,你能否包括你正在寻找的确切结果,但在此之前你可以尝试下面的每个容器的代码

$("#container").load("response.php");
     var refreshId = setInterval(function() {
         $("#container").empty().load('response.php');
     }, 1000);

我注意到的另一件事是,你正在使用id容器,container2,container3 结果的结构就像容器[container,container2,container3]一样,对于其他人而言,你认为它在单个HTML中的ID太多了。只是一个观察。您可能希望为唯一元素使用一个唯一ID