【发布时间】:2013-02-08 02:05:17
【问题描述】:
我在 HTML 页面上有以下内容:
<script type="text/javascript">
setInterval(function(){refresh()},5000);
function refresh()
{
$.post("test.php",
{
// nothing here
},
function(data, textStatus)
{
$('' + data + '').find('.maindiv').each(function () {
$('.maindiv').replaceWith('.maindiv');
});
});
}
</script>
<div id = "1" class= "maindiv">
<div sid= "1" class= "subdiv">old sub div content</div>
<div cid= "1" class= "childdiv">another old sub div</div>
<img id = "1" src="http://foo.com/bar.png"/>
</div>
<div id = "2" class= "maindiv">
<div sid= "2" class= "subdiv">this content is old</div>
<div cid= "2" class= "childdiv">please update me!</div>
<img id= "2" src="http://foo.com/bar.png"/>
</div>
被调用以更新元素的 PHP 页面 (test.php):
<?php
echo '<div id = "1" class= "maindiv">
<div sid= "1" class= "subdiv">this is new sub div</div>
<div cid= "1" class= "childdiv">this is also new sub div content</div>
<img id= "1" src="http://foo.com/bar.png"/>
</div>';
echo '<div id = "2" class= "maindiv">
<div sid= "2" class= "subdiv">new content</div>
<div cid= "2" class= "childdiv">new content for this child div</div>
<img id= "2" src="http://foo.com/bar.png"/>
</div>';
?>
这两个元素也出现在 HTML 页面上。基本上我想调用 PHP 页面并从 PHP 页面获取这些元素并在 HTML 页面的响应中循环遍历它们,并将每个 maindiv(包括其所有子元素)替换为 HTML 页面上的相应元素。
这只是一个非常基本的例子。我这样做是因为这些元素中的内容发生了变化,并且想要替换实时更新等元素。
我发布的功能似乎没有响应,所以不知道如何实现。
提前致谢
【问题讨论】:
-
虽然我相信它在 HTML5 中是允许的,但在某些浏览器中使用以数字开头的 id 是行不通的。
-
我必须使用数字来唯一,因为页面上有很多交互,所以它们必须是唯一的......无论如何感谢您指出这一点@popnoodles
-
您不能在它们前面加上一个非数字字符串?无论如何,至少你知道。
-
在解决了上述问题后可以这样做:)
-
这些 HTML 块看起来非常相似。如果这就是它们看起来最有效的方法,那么最有效的方法是使用模板并仅返回替换模板中占位符所需的数据。
标签: php javascript jquery html ajax