firefox TBODY 用js顯示和隱藏時出現(xiàn)錯位的解決方法
更新時間:2008年12月17日 01:23:25 作者:
今天幫別人寫一個網頁,發(fā)現(xiàn):當用javascript動態(tài)設置tr.style.display = "block"顯示某行時,使用IE瀏覽沒有問題,但使用firefox瀏覽時該行被移到了其它行的后面,很是詫異。
看下面這個例子:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
它在firefox中顯示時,“第一行”被顯示在最后一行。
于是在處理好需要顯示的行后,另寫了一個函數(shù),先記錄需要顯示的行,然后將所有行的style.display都設置為"none",最后再將需要顯示的行依次顯示出來。這樣,IE和firefox的顯示結果就一樣了。
后來,我還是覺得這個方法很笨,就又潛心研究了一番,發(fā)現(xiàn),只要將第二行和都三行都加上style="display:block",顯示也就正常了。見下面的代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
由此可見,firefox對是否設置style="display:block"是區(qū)別對待的,而IE作了適當?shù)募嫒萏幚怼?
結論和教訓是:盡量使用標準做法,不要指望瀏覽器可以兼容。IE用多了就常常會忘記這點。
注:如果不使用tbody則沒有這個問題。但tbody可以起到對行進行分組的作用,當一次需要顯示或隱藏多行時很有用。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
它在firefox中顯示時,“第一行”被顯示在最后一行。
于是在處理好需要顯示的行后,另寫了一個函數(shù),先記錄需要顯示的行,然后將所有行的style.display都設置為"none",最后再將需要顯示的行依次顯示出來。這樣,IE和firefox的顯示結果就一樣了。
后來,我還是覺得這個方法很笨,就又潛心研究了一番,發(fā)現(xiàn),只要將第二行和都三行都加上style="display:block",顯示也就正常了。見下面的代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
由此可見,firefox對是否設置style="display:block"是區(qū)別對待的,而IE作了適當?shù)募嫒萏幚怼?
結論和教訓是:盡量使用標準做法,不要指望瀏覽器可以兼容。IE用多了就常常會忘記這點。
注:如果不使用tbody則沒有這個問題。但tbody可以起到對行進行分組的作用,當一次需要顯示或隱藏多行時很有用。
相關文章
鼠標懸浮在樹組件節(jié)點上展示當前節(jié)點名稱的三種實現(xiàn)方式
這篇文章主要介紹了鼠標懸浮在樹組件節(jié)點上展示當前節(jié)點名稱的三種實現(xiàn)方式,第一種是使用css樣式設置,第二種在checkBox綁定,第三種使用tooltip,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2023-12-12javascript實現(xiàn)粘貼qq截圖功能(clipboardData)
這篇文章主要介紹了javascript實現(xiàn)粘貼qq截圖功能,利用clipboardData在網頁中實現(xiàn)截屏粘貼的功能,感興趣的小伙伴們可以參考一下2016-05-05