ajaxを使用して木々の木材が表示されないFirefoxの問題が発生している場合、phpスクリプトからhtmlソースを取得します
このhtmlコードにはタグが含まれており、tbody内にさらにいくつかのtr/tdが含まれています
ここで、このtbodyプレーンコードを既存のテーブルに追加します。ただし、もう1つの条件があります。テーブルはフォームの一部であるため、チェックボックスとドロップダウンが含まれています。table.innerHTML +=contentを使用する場合; Firefoxはテーブルをリロードし、その中のすべての要素をリセットします。
私が持っているのはこれです
// content equals transport.responseText from ajax request
function appendToTable(content){
var wrapper = document.createElement('table');
wrapper.innerHTML = content;
wrapper.setAttribute('id', 'wrappid');
wrapper.style.display = 'none';
document.body.appendChild(wrapper);
// get the parsed element - well it should be
wrapper = document.getElementById('wrappid');
// the destination table
table = document.getElementById('tableid');
// firebug prints a table element - seems right
console.log(wrapper);
// firebug prints the content ive inserted - seems right
console.log(wrapper.innerHTML);
var i = 0;
// childNodes is iterated 2 times, both are textnode's
// the second one seems to be a simple '\n'
for(i=0;i<wrapper.childNodes.length;i++){
// firebug prints 'undefined' - wth!??
console.log(wrapper.childNodes[i].innerHTML);
// firebug prints a textnode element - <TextNode textContent=" ">
console.log(wrapper.childNodes[i]);
table.appendChild(wrapper.childNodes[i]);
}
// WEIRD: firebug has no problems showing the 'wrappid' table and its contents in the html view - which seems there are the elements i want and not textelements
}
これは非常に些細なことで問題が見当たらないか、そのコーナーケースであり、ここの誰かがこれについてアドバイスを与えるために多くの経験を持っていることを願っています-誰もが私が期待する最終的に解析されたdom要素ではなくテキストノードを取得する理由を想像できますか?
ところで:ところで、完全な例を示すことはできません。テストセットではなく、実際に発生するバグの1つである、動作しない小さなコードを記述できません。
thx all