我有3个div
具有3个不同的背景&文本打印在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的方式是否正确?
答案 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