1、是否存在的判断
IE下,不管有没有设置rowspan这个属性,IE均认为有此属性,且默认值为1。而FF中,则根据DOM中的设置进行判断,DOM中没有写rowspan,则不认为td具备此属性。
因此用JQUERY判断某行的具有多行特性的TD用下面这种方法是不行的。
$("table tr:eq(0) td[rowspan]").length
这个写法,在IE下为所有的TD数量,但是在FF下得到的是DOM中写了ROWSPAN值的TD数量
可以这样写:
$("table tr:eq(0) td").filter(function(){
return $(this).attr("rowspan")>1
}).length
IE,FF,得到的均为7
2、删除某行后,ROWSPAN的变化
IE在删除一行后,会自动把对应的rowspan的值减1。而FF不减,它的值严格按照最初写的DOM中的ROWSPAN,需要您亲自写代码把rowspan的值减掉1
<script language="javascript"> $(document).ready(function(){ alert($("table tr:eq(0) td[rowspan]").length); alert($("table tr:eq(0) td:not([rowspan])").length); alert($("table tr:eq(0) td").filter(function(){ return $(this).attr("rowspan")>1 }).length); $("input").click(function(){ $("table tr:eq(1)").remove(); alert($("table tr:eq(0) td:eq(0)").attr("rowspan")); }); }); </script>
<body>
<table >
<tr><td rowspan=4>参数名称1<br/><a>新增</a><a>删行</a></td><td rowspan=4>字段名</td><td rowspan=4>编号</td><td rowspan=4>本参数值用于进行用户的设置</td><td>参数值1</td><td>参数值名1</td><td><a>修改</a><a>删除</a></td></tr>
<tr><td>参数值2</td><td>参数值名1</td><td><a>修改</a><a>删除</a></td></tr>
<tr><td>参数值3</td><td>参数值名1</td><td><a>修改</a><a>删除</a></td></tr>
<tr><td>参数值4</td><td>参数值名1</td><td ><a>修改</a><a>删除</a></td></tr>
</table>
<input type="button" value="click me">
</body>