Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2014, 13:48
Новичок на форуме
Отправить личное сообщение для tippula Посмотреть профиль Найти все сообщения от tippula
 
Регистрация: 10.12.2014
Сообщений: 5

Замена без innerHTML
Можно ли заменить на странице <h2>Zagolovok-1</h2>
не перерисовывая весь элемент в котором находиться h2 ?

document.getElementById('div_id').innerHTML = document.getElementById('div_id'').innerHTML.repla ce('<h2>Zagolovok-1</h2>', '<h2>Zagolovok-2</h2>');
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2014, 13:50
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

<html>
<head>
</head>
<body>

<h2>foo</h2>
<h3>foo</h3>


<script>
document.querySelector("h2").innerHTML="baz"
document.getElementsByTagName("h3")[0].innerHTML="baz"

</script>
</body>
</html>

Последний раз редактировалось krutoy, 12.12.2014 в 13:55.
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2014, 14:02
Новичок на форуме
Отправить личное сообщение для tippula Посмотреть профиль Найти все сообщения от tippula
 
Регистрация: 10.12.2014
Сообщений: 5

Простите, забыл пояснить. Заменить именно конкретный элемент, он может быть любым, id у него нет, но знаем точно какой тег и что внутри.
типа так чтобы работало
document.volshebhaya_hren("<h2>Zagolovok-1</h2>").innerHTML="<h2>Zagolovok-new</h2>"
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2014, 14:03
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от tippula
он может быть любым, id у него нет,
А где ты увидел в моем коде id?
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2014, 14:07
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от tippula
document.volshebhaya_hren("<h2>Zagolovok-1</h2>").innerHTML="<h2>Zagolovok-new</h2>"
Так и работает. Только innerHTML="Zagolovok-new
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2014, 14:14
Новичок на форуме
Отправить личное сообщение для tippula Посмотреть профиль Найти все сообщения от tippula
 
Регистрация: 10.12.2014
Сообщений: 5

Может я что то не понимаю, Нужно проверять не только какой тег но и что там внутри, т.к .может быть несколько одинаковых тегов, а поменять надо только в одном
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2014, 14:34
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

<html>
<head>
</head>
<body>

<h1>foo</h1>
<h1>bar</h1>

<script>
;[].forEach.call(document.querySelectorAll("h1"), function(el){if(el.innerHTML==="bar") el.innerHTML="baz"})
</script>
</body>
</html>

если производительность критична, можно так
<html>
<head>
</head>
<body>

<h1>foo</h1>
<h1>bar</h1>

<script>
;[].forEach.call(document.querySelectorAll("h1"), function(el){
  try{
     if(el.innerHTML==="bar") throw el
  }catch(e){e.innerHTML="baz"}})
</script>
</body>
</html>

или тупо циклом
<html>
<head>
</head>
<body>

<h1>foo</h1>
<h1>bar</h1>

<script>
els=document.querySelectorAll("h1")
for(var i=0; i<els.length; i++){
      if(els[i].innerHTML==="bar") {els[i].innerHTML="baz" ; break}

}
</script>
</body>
</html>

Последний раз редактировалось krutoy, 12.12.2014 в 15:04.
Ответить с цитированием
  #8 (permalink)  
Старый 12.12.2014, 15:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

krutoy,
>если производительность критична, можно так
>try catch
Ты совсем больной? Исключения замедляют код на порядки.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 12.12.2014, 15:47
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Aetae,
Ога
arr=[]
i=1000000
while(i--){arr.push(i)}
i=1000000

withTry=function(name){
console.time(name)
try{
arr.forEach(function(el) {if(el===1||el===(i-1)) throw el})
}catch(e){console.log(e)}
console.timeEnd(name)
}

withOutTry=function(name){
console.time(name)
arr.forEach(function(el) {if(el===1||el===(i-1)) console.log(el)})
console.timeEnd(name)
}


withTry("with")
withOutTry("without")
// ::: 999999
// ::: with: 2ms
// ::: 999999
// ::: 1
// ::: without: 117ms

И про память не забудь. Говностек никто не отменял.

Последний раз редактировалось krutoy, 12.12.2014 в 15:58.
Ответить с цитированием
  #10 (permalink)  
Старый 12.12.2014, 16:47
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

document.querySelector('#div_id h2').innerHTML = '...';
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX навигация без якоря(Требуется помощ) Radik55rus AJAX и COMET 11 14.08.2014 10:34
Замена подстрок без регулярных выражений truten Общие вопросы Javascript 14 24.06.2014 23:22
событье onclick как вызвать без клика и без подозрений... Александр_1997 Events/DOM/Window 0 21.06.2014 17:38
Замена контента в ячейке страницы без перезагрузки страницы SER Элементы интерфейса 1 24.03.2011 22:04
Открытие нового окна без скролбаров без верхнего бара "файл правка вид и тп" Mara Общие вопросы Javascript 2 18.02.2010 15:11