1

Firefoxアドオンをmozillaディレクトリに送信しましたが、次の理由で拒否されました。

item.innerHTML =   '<table style="border-collapse: collapse; width: 100%;">'
                  + '<tr><td style="line-height: inherit; padding: 0pt; width: 100%;">'
                   + word.title
                   + '</td></tr>'
                    + '</table>';

私は編集者に話しかけました、そして彼は私に「use a text node and then insert it using appendChild, textContent, etc」と言いました

それは私には完全にぎこちないように聞こえます、私は一度も使用したことがなくTextContent, appendChild、少し迷っています。上記の方法を教えていただけますか。スクリプトで上記のようなものの他の13個のインスタンスを編集します。

ありがとう!

4

3 に答える 3

5

あなたはおそらくこれらの線に沿って何かをする必要があります:

var t  = document.createElement("table"),
    tb = document.createElement("tbody"),
    tr = document.createElement("tr"),
    td = document.createElement("td");

    t.style.width = "100%";

    // note the reverse order of adding child        
    tr.appendChild(td);
    tb.appendChild(tr);
    t.appendChild(tb);

   // more code to populate table rows and cells
   item.appendChild(t);

注:ブラウザー間で動作が異なるため、この方法でテーブルを作成する場合は注意が必要です。FFについては、MDNに相談することをお勧めします。

于 2011-07-28T21:37:22.057 に答える
3

彼はあなたにJavaScriptでHTMLをプログラムで作成してほしいと思っています。この投稿を読んでください、それはあなたのために物事をクリアするはずです。詳細については、コメントを投稿してください。

于 2011-07-28T21:38:19.810 に答える
2

彼は、innerHTMLを使用するのではなく、DOMをより直接的に変更する関数を使用することを望んでいます。AppendChild

指定された親ノードの子のリストの最後にノードを追加します。ノードがすでに存在する場合は、現在の親ノードから削除されてから、新しい親ノードに追加されます

https://developer.mozilla.org/En/DOM/Node.appendChild。その形式は次のとおりです。var child = element.appendChild(child);

あなたのインスタンスでは私はします:

var newText = document.createTextNode(word.title);
locationInDom.appendChild(newText);

locationInDomは、innerHTMLを使用する場所です。innerHTMLがテーブルに入る場合は、特定の既存の列にIDを追加し、メソッドgetElementByIdを使用して、その時点で追加します。

于 2011-07-28T21:44:08.723 に答える