炫烂彩虹 发表于 2013-1-29 13:54:46

td的rowspan属性在IE和FF下的不同

 1、是否存在的判断
    IE下,不管有没有设置rowspan这个属性,IE均认为有此属性,且默认值为1。而FF中,则根据DOM中的设置进行判断,DOM中没有写rowspan,则不认为td具备此属性。
    因此用JQUERY判断某行的具有多行特性的TD用下面这种方法是不行的。
    $("table tr:eq(0) td").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").length);      alert($("table tr:eq(0) td:not()").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> 
页: [1]
查看完整版本: td的rowspan属性在IE和FF下的不同