Javascript 使用jquery创建实时时间戳时,不希望使用ID

Javascript 使用jquery创建实时时间戳时,不希望使用ID,javascript,jquery,each,Javascript,Jquery,Each,我正在通过以下方式进行实时时间戳更新: var refreshtimest; function refreshtimes() { var allt = ''; $("abbr[class=livetimestamp]").each(function () { var did = $(this).attr("id"); did = did.replace("dtime", ""); var tit = $(this).data

我正在通过以下方式进行实时时间戳更新:

 var refreshtimest;

function refreshtimes() {

    var allt = '';

    $("abbr[class=livetimestamp]").each(function () {
        var did = $(this).attr("id");
        did = did.replace("dtime", "");
        var tit = $(this).data("utime");

        allt += ':{}' + did + ',/:{}' + tit;
    });

    $.ajax({
        async: "false",
        type: "POST",
        url: "refreshtimes.php",
        data: {
            alltimes: allt
        },
        success: function (response) {
            if (response.length > 0) {

                var res = response.split("<>");
                var rres = res.length - 1;
                var x = 0;
                var id;

                while (x <= rres) {
                    if (strpos(res[x], ',/') !== false) {
                        id = parseInt(res[x]);
                    } else if (id != "undefined") {

                        document.getElementById("dtime" + id).innerHTML = res[x];
                    }
                    x++;
                }

            }
        }
    });

    refreshtimest = setTimeout("refreshtimes()", 60000);
}

refreshtimest = setTimeout("refreshtimes()", 2000);
var刷新时间t;
函数刷新次数(){
var-allt='';
$(“abbr[class=livetimestamp]”)。每个(函数(){
var did=$(this.attr(“id”);
did=did.replace(“dtime”,即“);
var tit=$(this.data(“utime”);
allt+=':{}'+did+',/:{}'+tit;
});
$.ajax({
异步:“假”,
类型:“POST”,
url:“refreshtimes.php”,
数据:{
所有时间:所有时间
},
成功:功能(响应){
如果(response.length>0){
var res=响应。拆分(“”);
var rres=相对长度-1;
var x=0;
变量id;

而(x基本上,我认为你首先不需要使用id

当您使用此选择器时,
$(“abbr[class=livetimestamp]”
将按自上而下的顺序解析DOM,并按顺序选择所有元素


因此,您不必发送元素的ID,而可以将时间本身作为逗号分隔的sting发送,按顺序发送。。然后在服务器上刷新时间并以相同的格式返回。

好的,听起来很不错,那么在更新读取时间上动态添加包含class=livetimestamp的元素如何如果在发送ajax和响应之间删除元素,更新将不正确。有什么建议吗?我认为,因为您的ajax请求中的async:false不应该发生这种情况。如果ajax是异步的,这可能是一个问题。还有,如果您在Aja之前将元素缓存在变量中x请求时,新添加的元素将不在缓存变量中。因此,即使添加了元素,我认为也不会有什么不同。。
5,/<>36 minutes ago<>2,/<>September 5 at 11:52am<>3,/<>September 5 at   11:48am<>72,/<>September 4 at 4:43pm<>73,/<>September 4 at 3:29pm<>33,/<>September 4 at 3:08pm<>16,/<>September 4 at 2:19pm<>70,/<>September 4 at 2:46pm<>0,/<>September 4 at 3:20pm<>4,/<>September 4 at 3:22pm<>71,/<>September 3 at 1:04pm<>6,/<>September 3 at 3:20pm<>7,/<>September 3 at 3:18pm<>8,/<>September 3 at 3:17pm<>9,/<>September 3 at 3:14pm
<abbr class="livetimestamp" data-utime"xxxx">html</abbr>
<abbr class="livetimestamp" data-utime"xxxx" id="words_numbers">html</abbr>