0

1つはIEで完全に機能し、もう1つはFFとChromeで完全に機能するため、この2つのコードを 1 にマージするために2日間試みています。では、どうすればそれらを1つにマージできますか? これは、IE では機能するが、FF では機能しないコードです。

....

      if (i < rowCount - 1) {
            detRez += dataTable.rows[i].cells[1].firstChild.value + "^";
            detRez += dataTable.rows[i].cells[2].firstChild.value + "%";
            //This working with FF
            //detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^";
            //detRez += dataTable.rows[i].cells[2].childNodes[1].value + "%";
        }
        else {
            detRez += dataTable.rows[i].cells[1].firstChild.value + "^";
            detRez += dataTable.rows[i].cells[2].firstChild.value;
                //This working with FF
                //detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^";
                //detRez += dataTable.rows[i].cells[2].childNodes[1].value;

            }
            }
.....

FF では機能するが IE では機能しないものは、行の前に // があります

FF でエラーは発生しません (IE コードをテストした場合)、文字列が正しく構築されておらず、次のようになっているだけです: undefined^undefined%undefined^undefined の代わりに MyText^.....

これらの 2 つのコードをマージして IE と FF の両方で機能させる方法はありますか? 前もって感謝します。

4

1 に答える 1

2

FirefoxとInternetExplorerは、子ノードの処理が異なります。FirefoxはDOM準拠モードを使用し、タグ間のギャップなどをカウントします。Internet Explorerは、それらの一部のみをカウントします(したがって、2つの間の不整合)。

getElementsByTagName()の代わりに使用することを検討する必要がありchildNodes[]ます。

于 2012-09-06T10:14:17.857 に答える