createTextNode вставляется обычным текстом
Здравствуйте! использую createTextNode для вставки текста в div, можно ли сделать так, чтобы при вставке он всё-таки учитывал его как html код ( как innerHTML ) и все теги <> не как простой текст
<!DOCTYPE html>
<html lang="en">
<head>
<title>createTextNode example</title>
<script>
function addTextNode(text) {
var newtext = document.createTextNode(text),
p1 = document.getElementById("p1");
p1.appendChild(newtext);
}
</script>
</head>
<body>
<button onclick="addTextNode('<h1>YES!</h1> ');">YES!</button>
<hr />
<p id="p1">Хочу чтобы было заголовком</p>
</body>
</html>
|
insertAdjacentHTML('beforeend', 'abc')
|
не получилось....
конкретно есть такой кусок кода
/*
Render this widget into the DOM
*/
AddUpWidget.prototype.render = function(parent,nextSibling) {
this.parentDomNode = parent;
this.computeAttributes();
this.execute();
var textNode = this.document.createTextNode(this.currentSum);
parent.insertBefore(textNode,nextSibling);
this.domNodes.push(textNode);
};
он вставляет currentSum обычным текстом, а нужно переделать так, чтобы вставлялся хтмл код. как это сдлать? |
Цитата:
<!DOCTYPE html>
<html ng-app>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function addTextNode(text) {
var o = document.createElement('div');
o.innerHTML=text
var p1 = document.getElementById("p1");
o=o.childNodes;
for (var i=0; i<o.length; i++) {
p1.appendChild(o[i]);
};
};
</script>
</head>
<body>
<button onclick="addTextNode('<h1>YES!</h1> ');">YES!</button>
<hr />
<div id="p1">
<p>Хочу чтобы было заголовком</p>
</div>
</body>
</html>
|
Или вообще вот так. :D
<!DOCTYPE html>
<html ng-app>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function addTextNode(text) {
document.getElementById("p1").innerHTML+=text;
};
</script>
</head>
<body>
<button onclick="addTextNode('<h1>YES!</h1> ');">YES!</button>
<hr />
<div id="p1">
<p>Хочу чтобы было заголовком</p>
</div>
</body>
</html>
|
это понятно, только тут createTextNode совсем не использовано.
а у меня уже есть эта текстовая ветка , она уже сосздана var textNode = this.document.createTextNode(this.currentSum); нужно эту ветку преобразовать в хтмл, перед тем как она вставится parent.insertBefore(textNode,nextSibling); this.domNodes.push(textNode); возможно текст в html преобразовать? |
sovsem-nub, текстовая нода она и есть текстовая, как ее не преобразуй... ;)
Цитата:
|
пошло поехало
туплю. реально innerhtml ... просто бедный js не знал куда его пихать.
так сработало
AddUpWidget.prototype.render = function(parent,nextSibling) {
this.parentDomNode = parent;
this.computeAttributes();
this.execute();
var divNode = this.document.createElement("span");
divNode.innerHTML = this.currentSum;
parent.insertBefore(divNode,nextSibling);
this.domNodes.push(divNode);
|
| Часовой пояс GMT +3, время: 09:32. |