Jquery真的比较好玩,跨浏览器的支持真地很不错,但是又很有意思。
今天做到在一个table里面动态添加tr的一个效果,我没有用add object tr 然后td这样的做法,虽然是dom正宗,但是感觉繁琐,所以呢,就预先把结构写出来,然后想要添加,直接添加这段html就好了。
然后我第一次写的是一个div容器,里面放这个tr
结构就是
<div id="testID">
<tr>中间略......</tr>
</div>
然后
在$("#testID").html()获得内部的HTML,IE里面没有问题,但是在FF里面我突然发现,网页变形了,好奇怪。
然后我开始ffdebug调试,html内容居然把tr,td都去掉了,而只剩下td内部的元素。然后想想,既然是标转化的xhtml文档,当然就需要标准化的内容,所以div内嵌套tr,td当然是不标准的。
然后我修改了一下拿table做容器,这下也是正常的方式。但是这时候,不仅在FF里面变形了,而且在IE里面也变形了。好吧,继续ffdebug.发现居然html()自己多加了一个tbody,这个。。。。。。
为了这个tbody,我马上去查xhtml标准,毕竟用第一次的经验去理解是因为标准这样,但是查了一下,真的是没有这个东西。呵呵,所以呢,看来jquery还是比较有意思的,不知道为什么一定要在table里面加tbody,那你什么时候加thead呢?呵呵,玩笑了。
那么最后说答案吧,其实刚才说了,用div做容器肯定是不行了,table做容器自动添加了一个tbody,那么OK,这个算是一个bug吧,同时也是解决问题的关键。
$("#testID").html() 这个修改成 $("#testID tbody").html() 搞定,呵呵。