Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2015, 20:16
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

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>

Последний раз редактировалось sovsem-nub, 09.02.2015 в 20:18.
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2015, 20:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

insertAdjacentHTML('beforeend', 'abc')
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2015, 09:08
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

не получилось....
конкретно есть такой кусок кода
/*
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 обычным текстом, а нужно переделать так, чтобы вставлялся хтмл код. как это сдлать?
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2015, 09:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от sovsem-nub
нужно переделать так, чтобы вставлялся хтмл код. как это сдлать?
Например так...

<!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>
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2015, 09:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Или вообще вот так.

<!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>
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2015, 11:01
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

это понятно, только тут createTextNode совсем не использовано.
а у меня уже есть эта текстовая ветка , она уже сосздана
var textNode = this.document.createTextNode(this.currentSum);


нужно эту ветку преобразовать в хтмл, перед тем как она вставится

parent.insertBefore(textNode,nextSibling); 
 this.domNodes.push(textNode);


возможно текст в html преобразовать?
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2015, 11:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

sovsem-nub, текстовая нода она и есть текстовая, как ее не преобразуй...

Сообщение от sovsem-nub
возможно текст в html преобразовать?
Я тебе уже показал как можно преобразовать текст в хтмл.

Последний раз редактировалось ksa, 11.02.2015 в 08:32.
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2015, 16:50
Аватар для sovsem-nub
Профессор
Отправить личное сообщение для sovsem-nub Посмотреть профиль Найти все сообщения от sovsem-nub
 
Регистрация: 15.10.2014
Сообщений: 255

пошло поехало
туплю. реально 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);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ссылки на сайты отображаются обычным текстом Maxsl_89 Элементы интерфейса 3 15.10.2013 10:04