使用WITHOUT jQuery包装已创建的文本节点

时间:2013-04-12 14:25:59

标签: javascript

我正在编辑一个脚本,该脚本在某一点上执行以下操作:

err_node = document.createTextNode(err_decoded_str);

但是我需要将生成的文本节点包装在<label class="error">generated error node in here</label>

如何在不使用jQuery的情况下完成此操作?如果需要,我可以将createTextNode()更改为不同的功能来实现此目的。

4 个答案:

答案 0 :(得分:1)

因此请将其更改为使用createElement而不是

err_node = document.createTextNode(err_decoded_str);

err_node = document.createElement("label");
err_node.className = "error";
err_node.innerHTML = err_decoded_str;

如果需要,可以创建一个textnode并将其附加到err_node。

err_node = document.createElement("label");
err_node.className = "error";
var err_textnode = document.createTextNode(err_decoded_str);
err_node.appendChild(err_textnode);

答案 1 :(得分:0)

当您将文本包装在<label>中时,它将成为元素而不是文本节点。查看the MDN documentation here.

中的document.createElement

答案 2 :(得分:0)

label = document.createElement('label');
label.className = 'error';
label.appendChild(document.createTextNode(err_decoded_str));
// attach the label to where ever its supposed to go

答案 3 :(得分:0)

err_node = document.createTextNode(err_decoded_str);
var label = document.createElement("label"); // create label element
label.classList.add("error"); // add error class to label
label.appendChild(err_node); // append err_node to label
console.log(label);