3


私はこのコードを持っています

var tmpEl = document.createElement('div')
tmpEl.innerHTML = stringEl;
return tmpEl.firstChild

これは、テキストをDomノードに変換するために使用します。問題は、タグstringElが含まれている場合、これが機能しないようにタグ<tr>を作成する必要があることです。また、このコードがタグを含むことで機能するようにする場合は、タグを作成または挿入する必要があります。文字列をDomノードに変換するためのジェネリックはありますか? よろしく、 ヨルダンtabledivstringEllioluldiv

4

2 に答える 2

2
function domNode(nodeType, text) {
var node = document.createElement(nodetype);
node.appendChild(document.createTextNode(text));
return node;
}

domNode('p', 'Hello World!');

そのようなもので、タグを選択できます。

編集:実際には...

function domNode(nodeType, text) {
    var node = document.createElement(nodetype);
    if (text) node.appendChild(document.createTextNode(text));
    return node;
    }

var myList = domNode('ul').appendChild(domNode('li', 'This is a list item!'));
于 2012-10-19T13:56:23.143 に答える
2

このために設計された DOM Range のメソッドがあります: createContextualFragment(). これはDOM Parsing and Serialization 仕様で指定されており、Mozilla、WebKit、および Opera ブラウザーに実装されています (ただし、IE にはまだ実装されていません)。

例を次に示します: http://jsfiddle.net/gbWCS/

HTML:

<table id="table">
    <tr id="firstRow"><td>One</td><td>Two</td></tr>
</table>

JavaScript:

var html = "<tr><td>Three</td><td>Four</td></tr>";
var table = document.getElementById("table");
var range = document.createRange();
range.selectNodeContents(table);
var frag = range.createContextualFragment(html);
table.appendChild(frag);
于 2012-10-19T14:31:59.750 に答える