Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена контента в div (https://javascript.ru/forum/dom-window/66302-zamena-kontenta-v-div.html)

dima85 07.12.2016 14:41

Замена контента в div
 
Есть такой код, каждый блок имеет свой ID
Код:

<div id="content">
<div id="block322">text</div>
<div id="block3232">text</div>
<div id="block3422">text</div>
<div id="block3212">text</div>
</div>

И есть переменные:
Код:

blockid = 'block3232'
refresh = '<div id="block3232">text2</div>';

Задача, нужно данные с refresh вставить в content на место id="block3232"

Если я делаю так:
Код:

document.getElementById(blockid).innerHTML=refresh;
Получаю такой результат:
Код:

<div id="block3232"><div id="block3232">text2</div></div>

Мне же нужно заменить только "text2" в блоке. Подскажите как это сделать? Важно что бы новый блок встал именно на место старого.

Dilettante_Pro 07.12.2016 15:17

dima85,

var refresh = '<div id="block3232">text2</div>';
var refr = refresh.replace(/(\<(\/?[^>]+)>)/g, '');
alert(refr);


И далее
document.getElementById(blockid).innerHTML=refr;

ksa 07.12.2016 16:26

Цитата:

Сообщение от dima85
Мне же нужно заменить только "text2" в блоке.

Зачем тогда хранить так много "лишнего текста" в переменной?

ksa 07.12.2016 16:33

Предложу еще такой вариант, если контент будет более сложный...

<div id="content">
	<div id="block322">text</div>
	<div id="block3232">text</div>
	<div id="block3422">text</div>
	<div id="block3212">text</div>
</div>
<script type='text/javascript'>
(function(){
	var id = 'block3232';
	var html = '<div id="block3232">text2</div>';
	var obj=document.getElementById(id);
	var o=document.createElement('div');
	o.innerHTML=html;
	obj.innerHTML=o.children[0].innerHTML;
})();
</script>


Часовой пояс GMT +3, время: 15:35.