Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.11.2014, 19:54
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

candro,
Ну так, убери кнопку, и вызывай ф-цию напрямую, какие проблемы? Я кнопку в демонстрационных целях добавил
Ответить с цитированием
  #12 (permalink)  
Старый 13.11.2014, 19:57
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 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 (permalink)  
Старый 13.11.2014, 20:16
Интересующийся
Отправить личное сообщение для candro Посмотреть профиль Найти все сообщения от candro
 
Регистрация: 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>

Так нужно?
Ответить с цитированием
  #14 (permalink)  
Старый 13.11.2014, 20:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от krutoy
хотелось бы, все-таки, понять логику и специфику его поведения
Просто пиши var при объявлении переменных , как все нормальные люди и ни о какой специфике думать не нужно)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #15 (permalink)  
Старый 13.11.2014, 20:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ты ведь в курсе, что объявление с var и без - не одно и тоже?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #16 (permalink)  
Старый 13.11.2014, 20:34
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от danik.js
Ты ведь в курсе, что объявление с var и без - не одно и тоже?
В глобальной области видимости, одно и то же, вроде.
Ответить с цитированием
  #17 (permalink)  
Старый 13.11.2014, 20:42
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 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>
Ответить с цитированием
  #18 (permalink)  
Старый 13.11.2014, 20:45
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

danik.js,
Там есть нюансы, конечно, криво-реализационно-специфичные. Но принципиальную разницу я только в ноде раньше замечал.

А если все переменные без вар заменить на window.variable работает?
Ответить с цитированием
  #19 (permalink)  
Старый 13.11.2014, 20:52
Интересующийся
Отправить личное сообщение для candro Посмотреть профиль Найти все сообщения от candro
 
Регистрация: 27.02.2012
Сообщений: 26

Получается он добавляет после блока1 блок2, верно?
Ответить с цитированием
  #20 (permalink)  
Старый 13.11.2014, 20:55
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от candro
Получается он добавляет после блока1 блок2, верно?
Нет. Он меняет текст <div class="block1" на текст <div class='block2
Кусок текста меняет. А блок2 там как был так и остался.

Последний раз редактировалось krutoy, 13.11.2014 в 20:57.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите плагин для подсветки синтаксиса html css php js кода Кирюха =) Библиотеки/Тулкиты/Фреймворки 2 31.10.2015 06:12
Где найти скрипт - Социальный Замок для html ? klimentino Общие вопросы Javascript 1 25.10.2013 06:39
Переписать маленький скрипт JQ на JS lamer Работа 26 29.06.2012 11:32
Повседневная роль JS и html function Общие вопросы Javascript 6 25.01.2012 09:41
Не запускается скрипт JS vandy3 AJAX и COMET 3 07.12.2010 09:43