1、是否存在的判断
在
IE浏览器下,不管有没有设置rowspan这个属性,IE均认为有此属性,且默认值为1。而在Firefox浏览器中,则根据DOM中的设置进行判断,DOM中没有写rowspan,则不认为td具备此属性。
因此用JQUERY判断某行的具有多行特性的TD用下面这种方法是不行的。
$("table tr:eq(0) td[rowspan]").length
这个写法,在IE下为所有的TD数量,但是在Firefox下得到的是DOM中写了ROWSPAN值的TD数量
可以这样写:
$("table tr:eq(0) td").filter(function(){
return $(this).attr("rowspan")>1
}).length
IE,Firefox,得到的均为7
2、删除某行后,ROWSPAN的变化
IE在删除一行后,会自动把对应的rowspan的值减1。而
Firefox浏览器不减,它的值严格按照最初写的DOM中的ROWSPAN,需要您亲自写代码把rowspan的值减掉1
Js代码:
Html代码:
除了上面的问题还碰到了一个js问题,跟下面网友列出问题是一样,我们先看看网友提供的效果图,然后再来说说这个问题。
要实现的效果如下:

为了实现这个表单效果,需要把前两个的td中rowspan设置为3,才能达到效果。在做的时候,是先用freemarker判断从j2ee中返回的list类型数据是不是有一样的,如果有一样的,则合并掉。在实现这个功能要用到js,就在freemarker中写了如下代码
var addRow=document.getElementById("org${idx2}").getAttribute("rowspan");
document.getElementById("org${idx2}").setAttribute("rowspan",parseInt(addRow)+1);
document.getElementById("num${idx2}").setAttribute("rowspan",parseInt(addRow)+1);
结果在IE8,Firefox下都没问题,谁知道这用了
ie8的兼容模式一下,
ie6下出错了。有一个浏览器不能正常显示,这当然不能过关了,后来通过搜索发现原来在IE6下的rowspan要改成rowSpan,IE6还分大小写。
到此,算是解决rowspan属性的问题了。
标签:FirefoxIE浏览器属性rowspanIE Web