tdのrowspan属性のIEとFFでの相違
2250 ワード
1、存在するか否かの判定IEでは、rowspanという属性が設定されているかどうかにかかわらず、IEはこの属性があるとみなし、デフォルト値は1である.FFでは、DOMの設定に基づいて判断し、DOMにrowspanが書かれていなければ、tdがこの属性を備えているとは思わない.したがって,ある行の複数行の特性を持つTDをJQUERYで判断するには,次のような方法ではだめである. $("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は1行を削除すると,自動的に対応する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>