0

画像を追加して、以下のコードと同等のことをしようとしていますが、テキストノードを作成する代わりに、画像要素を作成するにはどうすればよいですか?

//create the DOM object

var newSpan = document.createElement('span');

// add the class to the 'span'

newSpan.setAttribute('class', 'ABC');
document.getElementById('text').appendChild(newSpan);   
var selectedTextNode = document.createTextNode(); 
newSpan.appendChild(selectedTextNode);
4

3 に答える 3

2
<div id="text"></div>

//create the DOM object

var newSpan = document.createElement('span');

// add the class to the 'span'

newSpan.setAttribute('class', 'ABC');
document.getElementById('text').appendChild(newSpan);

var image = document.createElement("img");
image.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Fairfax-harrison-1913.jpg/100px-Fairfax-harrison-1913.jpg"

newSpan.appendChild(image);

jsfiddle

于 2013-04-20T18:29:01.757 に答える
1

多くのノード作成を行う場合、通常はそのための関数を作成するので、同じことを繰り返す必要はありません。

//                     String,  Object,  String
function createElement(tagName, attribs, text) {
    var elm = document.createElement(tagName), a;
    if (attribs) // if given
        for (a in attribs) // for each property
            if (attribs.hasOwnProperty(a)) // that is not inherited
                elm.setAttribute(a, attribs[a]); // set attribute
    if (text) // if given
        elm.appendChild(document.createTextNode(text)); // append text
    return elm; // node out
}

はるかに簡単になりました。

// create the elements
var span = createElement('span', {'class': 'ABC'}),
    img = createElement('img', {'src': 'http://www.google.com/favicon.ico'});

span.appendChild(img); // put image in span
document.getElementById('text').appendChild(span); // append wherever
于 2013-04-20T18:43:21.300 に答える