60

別の要素の前に HTML を挿入するための純粋な JavaScript 関数はありますか? jQuery では、次のように実現できます。

$("#my_id").before('<span class="asterisk">*</span>');

同等の JavaScript 関数がない場合、説明されている機能をどのように実現できますか?

4

3 に答える 3

79

編集:私は@Rob Wの答えを好み、これではなく、それが受け入れられる答えであるべきだと思います。


これは、jQuery のような肥大化したライブラリのサポートを必要とせずに、あなたが望むことを行います。

var my_elem = document.getElementById('my_id');

var span = document.createElement('span');
    span.innerHTML = '*';
    span.className = 'asterisk';

my_elem.parentNode.insertBefore(span, my_elem);
于 2013-10-11T10:34:08.203 に答える
8

次のように、JavaScriptで独自の関数を作成できます。

コード

var id = document.getElementById('my_id');
var s = document.createElement('span');
s.innerHTML = '*';
s.className = 'asterisk';
id.parentNode.insertBefore(s, id);

InsertBefore ドキュメント

likeの前に関数を作成できます。

before: function() {
    return this.domManip( arguments, false, function( elem ) {
        if ( this.parentNode ) {
            this.parentNode.insertBefore( elem, this );
        }
    });
},

http://code.jquery.com/jquery-1.9.1.jsからのソース

于 2013-10-11T10:33:54.673 に答える