|
13.11.2014, 19:54
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
candro,
Ну так, убери кнопку, и вызывай ф-цию напрямую, какие проблемы? Я кнопку в демонстрационных целях добавил
|
|
13.11.2014, 19:57
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
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>
<script>
wrap=document.querySelector("#wrap")
;(function(){
var re=/<div.*block1.*\/div>/,
block=wrap.innerHTML,
block=block.replace(re, "<div class='block2'>block2</div>")
wrap.innerHTML=block
})()
</script>
</body>
</html>
|
|
13.11.2014, 20:16
|
Интересующийся
|
|
Регистрация: 27.02.2012
Сообщений: 26
|
|
Понятно, а как, но что-то разобраться не могу, вот если заменять в коде только начало блока <div class="block1"> на
<div class="block2"></div><div class="block1">. Что поправить нужно?
<script>
wrap=document.querySelector("#wrap")
;(function(){
var re=/<div.*block1.*\/,
block=wrap.innerHTML,
block=block.replace(re, "<div class='block2'>block2</div><div class='block1'>")
wrap.innerHTML=block
})()
</script>
Так нужно?
|
|
13.11.2014, 20:30
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от krutoy
|
хотелось бы, все-таки, понять логику и специфику его поведения
|
Просто пиши var при объявлении переменных , как все нормальные люди и ни о какой специфике думать не нужно)
__________________
В личку только с интересными предложениями
|
|
13.11.2014, 20:31
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Ты ведь в курсе, что объявление с var и без - не одно и тоже?
__________________
В личку только с интересными предложениями
|
|
13.11.2014, 20:34
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от danik.js
|
Ты ведь в курсе, что объявление с var и без - не одно и тоже?
|
В глобальной области видимости, одно и то же, вроде.
|
|
13.11.2014, 20:42
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
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>
<script>
wrap=document.querySelector("#wrap")
;(function(){
var re=/<div\s+class\s*=\s*['"]\s*block1\s*['"]/,
block=wrap.innerHTML,
block=block.replace(re, "<div class='block2'")
wrap.innerHTML=block
})()
</script>
</body>
</html>
|
|
13.11.2014, 20:45
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
danik.js,
Там есть нюансы, конечно, криво-реализационно-специфичные . Но принципиальную разницу я только в ноде раньше замечал.
А если все переменные без вар заменить на window.variable работает?
|
|
13.11.2014, 20:52
|
Интересующийся
|
|
Регистрация: 27.02.2012
Сообщений: 26
|
|
Получается он добавляет после блока1 блок2, верно?
|
|
13.11.2014, 20:55
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от candro
|
Получается он добавляет после блока1 блок2, верно?
|
Нет. Он меняет текст <div class="block1" на текст <div class='block2
Кусок текста меняет. А блок2 там как был так и остался.
Последний раз редактировалось krutoy, 13.11.2014 в 20:57.
|
|
|
|