我用的是timeago计算友好时间。
第一种情况 <time class="timeago" datetime="2014-06-26T16:30:20.973"></time>
$(function () { $(".timeago").timeago(); });
我在后台拼的字符串
第二种情况<time class=\"timeago\" datetime=\""+p.DT_UPLOADTIME +"\"></time>
在javascript中用innerHTML拼的字符串
第三种情况<time class="timeago" datetime="'+this.DT_UPLOADTIME +'"></time>
在第一和第二种情况下时间在页面都能正常显示时间,但是在第三种情况下却不能。参数都是对的。我把第三种情况下生成的HTML放刀页面,也还是能显示。为什么第三种情况下显示不了呢?什么原因呢?
datetime="'+this.DT_UPLOADTIME +'" 。
这不就是一个字符串么....
值是对的,能取到值。
第一种情况 浏览器可以解析,因为是html文件
第二种情况 浏览器可以解析,因为是后台生成的html文件
第三种情况 浏览器不可以解析,因为html文件中datetime="'+this.DT_UPLOADTIME +'"带颜色的部分是一个字符串,字符串怎么能够当成脚本来执行呢?
我是用的innerHTML,这个是在javascript脚本里面,那该怎么把javascript的值传到html呢?
@Vivu: $(".timeago").attr("datetime",this.DT_UPLOADTIME);
第二种原因不能取到值,是因为用了ajax,其实datetime的值是能取到的。在ajax请求回来后再调用一次timeago的方法就对了。