3

重複の可能性:
ライブラリを使用せずにJavaScriptにAfter()を挿入するにはどうすればよいですか?

現在、このスクリプトはテーブルの下部に行を追加します。特定の行の後に追加するように指示するにはどうすればよいですか?テーブルの一番上に?

<script>
var i = 1;

function changeIt() {
var tr = document.createElement('tr');
var td = tr.appendChild(document.createElement('td'));
td.style.valign = 'middle';

var span = td.appendChild(document.createElement('span'));
span.style.fontWeight = 'bold';
span.appendChild(document.createTextNode('URL ' + i));

td = tr.appendChild(document.createElement('td'));
var input = td.appendChild(document.createElement('input'));
input.name = 'url' + ++i;
input.type = 'text';
input.size = '40'

document.getElementById('myTable').tBodies[0].appendChild(tr);

}
</script>

私はGoogleを検索して学習してきましたが、jQuery、innerhtml、insertrowの回答に出くわし続けています。

4

1 に答える 1

1

https://developer.mozilla.org/en-US/docs/DOM/Node.insertBeforeを探していますnode.insertBefore()

var i = 1;

function changeIt() {
    var tr = document.createElement('tr');
    var td = tr.appendChild(document.createElement('td'));
    td.style.valign = 'middle';

    var span = td.appendChild(document.createElement('span'));
    span.style.fontWeight = 'bold';
    span.appendChild(document.createTextNode('URL ' + i));

    td = tr.appendChild(document.createElement('td'));
    var input = td.appendChild(document.createElement('input'));
    input.name = 'url' + ++i;
    input.type = 'text';
    input.size = '40'
    var node = document.getElementById('myTable').tBodies[0];
    node.insertBefore(tr, node.firstChild);

}

特定の位置に追加するには、のインデックスを知っている必要があります.children。それ以外の場合は、getByまたはQSAに渡すことができるキー識別子(クラス名、属性、またはID)。

于 2012-12-19T00:31:56.457 に答える