Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JS скрипт замены html (https://javascript.ru/forum/misc/51634-js-skript-zameny-html.html)

candro 13.11.2014 17:40

JS скрипт замены html
 
Всем привет, задался вопросом, а как сделать через js замену html блока(строки)?
К примеру есть блок <div class="block">, а нужно чтоб через js заменялось к примеру на <div class="block2"></div><div class="block">

Всем за ранее спасибо!

danik.js 13.11.2014 18:20

HTML, загруженный браузером - это уже не строка, а DOM - объектная модель документа.

krutoy 13.11.2014 19:13

candro,
да это легко вообще сделать. Например
<html>
<head>
<meta charset="windows-1251">
<style>
.block1{background: red}
.block2{background: green}
</style>
</head>
<body>

<div id="wrap">
<div class="block1">block1</div>
<div class="block2">block2</div>
</div>
<button id="but">push</button>

<script>

but=document.querySelector("#but")
wrap=document.querySelector("#wrap")

but.onclick=function(){
   var re=/<div.*block1.*\/div>/,
       block=wrap.innerHTML,
       block=block.replace(re, "<div class='block2'>block2</div>")
       wrap.innerHTML=block
}

</script>

</body>
</html>

Может я чо не так понял?

danik.js 13.11.2014 19:29

krutoy, твой код не кроссбраузерный.

danik.js 13.11.2014 19:29

Не работает в IE8

danik.js 13.11.2014 19:30

А все из-за тупого косяка твоего.

krutoy 13.11.2014 19:31

danik.js,
А что именно? У меня нет IE:)

danik.js 13.11.2014 19:36

krutoy, а нехер выеживаться. Нужно var писать при объявлении переменных.

krutoy 13.11.2014 19:39

danik.js,
Я не пойму, какая связь? Там в первоначальном варианте div был не закрыт. Может ты первый вариант проверял? Если нет, то хотелось бы, все-таки, понять логику и специфику его поведения.

candro 13.11.2014 19:44

Эм, кроссбраузерность не важна, просто есть потребность, чтоб этот DOM элемент <div class="block">, заменялся на <div class="block2"></div><div class="block"> к примеру. Просто нужно сделать замену этого элемента через JS.
Самое главное, происходить это должно без нажатия куда либо.


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