Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.08.2012, 02:08
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Aetae Посмотреть сообщение
И да, решение от cyber, не будет работать если элементов 3, надо так:
var wrapper_ = document.getElementById('wrapper');
var elem =  wrapper_.children[1];
wrapper_.insertBefore(elem, wrapper_.children[3] || null) //ксли вторым параметром null - работает как appeendChild, а если undefined - кидает ошибку
нет, вы ошибаетесь

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<div id='wrapper'> 
    <div>1 </div>
    <div> 2</div>
    <div>3 </div>
    
  </div>  
  <script>

var wrapper_ = document.getElementById('wrapper');

var elem =  wrapper_.children[1];
    alert(wrapper_.children[3] == null);//wrapper_.children[3] == undefined, a undefined == null
    
 wrapper_.insertBefore(elem, wrapper_.children[3])  
    


    </script>

  </body>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 19.08.2012, 02:46
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

что бы убрать все лишние элементы (комментарии, пробелы и ...) написал функцию remove_TextNode (кроссбраузерно)
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<div id='wrapper'> 
    <div>1 </div>
    <div> 2</div>
  <!--text-->
    <div>3 </div>
    
  </div>  

  <script>

var wrapper_ = document.getElementById('wrapper');

 var divs = wrapper_.getElementsByTagName('div');
 


 console.log(wrapper_.childNodes);
 console.log( remove_TextNode(wrapper_.childNodes));
    
    function remove_TextNode (array) {
    
      var leng = array.length;
      var elemArray, resultArray = [];
      
      for (var i = 0; i < leng;i++) {
      
       elemArray = array[i];
     
        if (elemArray.nodeType != 1) continue;
        
        
        resultArray.push(elemArray);
      }
    
     return resultArray;
    }
    


    </script>

  </body>
</html>
Ответить с цитированием
  #13 (permalink)  
Старый 19.08.2012, 08:01
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от cyber Посмотреть сообщение
нет, вы ошибаетесь

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<div id='wrapper'> 
    <div>1 </div>
    <div> 2</div>
    <div>3 </div>
    
  </div>  
  <script>

var wrapper_ = document.getElementById('wrapper');

var elem =  wrapper_.children[1];
    alert(wrapper_.children[3] == null);//wrapper_.children[3] == undefined, a undefined == null
    
 wrapper_.insertBefore(elem, wrapper_.children[3])  
    


    </script>

  </body>
</html>
в IE < 9 как минимум ваш вариант не буит робить...нужно делать как написал Aetae
Ответить с цитированием
  #14 (permalink)  
Старый 19.08.2012, 11:03
Интересующийся
Отправить личное сообщение для Elve Посмотреть профиль Найти все сообщения от Elve
 
Регистрация: 11.06.2012
Сообщений: 25

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>

<body>
<div id="content-wrap">
<!--text1-->
<div></div>
<div></div>
<!--text 2 -->
<div></div>

</div>
<script>
var wrapper_ = document.getElementById('content-wrap');
	/*var elem =  wrapper_.children[4];*/
	var divs = wrapper_.getElementsByTagName('div');

	
	console.log(wrapper_.childNodes);
 	console.log(remove_TextNode(wrapper_.childNodes));
    
    function remove_TextNode (array) {
    
      var leng = array.length;
      var elemArray, resultArray = [];
      
      for (var i = 0; i < leng;i++) {
      
       elemArray = array[i];
     
        if (elemArray.nodeType != 1) continue;
        
        
        resultArray.push(elemArray);
      }
    
     return resultArray;
    }
</script>
</body>
</html>

Вот это запускаю в ИЕ и ноль на массу...
Ответить с цитированием
  #15 (permalink)  
Старый 19.08.2012, 14:46
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

я запускал это в ие 8 и все работало
Ответить с цитированием
  #16 (permalink)  
Старый 19.08.2012, 15:05
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
Не робит ие6-8
Ответить с цитированием
  #17 (permalink)  
Старый 19.08.2012, 15:13
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
 
<body>
<div id="content-wrap">
<!--text1-->
<div></div>
<div></div>
<!--text 2 -->
<div></div>
 
</div>
<script> 
var wrapper_ = document.getElementById('content-wrap');
	/*var elem =  wrapper_.children[4];*/
	var divs = wrapper_.getElementsByTagName('div');
 
	
	alert('до обработки ='+wrapper_.childNodes.length+" после="+remove_TextNode(wrapper_.childNodes).length);
 	
    
    function remove_TextNode (array) {
    
      var leng = array.length;
      var elemArray, resultArray = [];
      
      for (var i = 0; i < leng;i++) {
      
       elemArray = array[i];
     
        if (elemArray.nodeType != 1) continue;
        
        
        resultArray.push(elemArray);
      }
    
     return resultArray;
    }
</script>
</body>
</html>

Ответить с цитированием
  #18 (permalink)  
Старый 19.08.2012, 15:16
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от lord2kim Посмотреть сообщение
в IE < 9 как минимум ваш вариант не буит робить...нужно делать как написал Aetae
хм..
вы правы, не работает, но пародкс в том что

alert(wrapper_.children[3] == null);//возвращает true
Ответить с цитированием
  #19 (permalink)  
Старый 19.08.2012, 15:24
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

cyber, не важно, что он возвращает, важно что IE это не воспринимает)))
Ответить с цитированием
  #20 (permalink)  
Старый 19.08.2012, 15:27
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от lord2kim Посмотреть сообщение
cyber, не важно, что он возвращает, важно что IE это не воспринимает)))
кто вообще ие назвал браузером
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
теги в выделенном фрагменте woojin Events/DOM/Window 48 15.08.2012 19:13
Выбор несуществующего элемента nematod Элементы интерфейса 1 12.03.2012 02:39
"Путь" до нужного элемента Pixelus jQuery 2 06.03.2012 21:34
Выбор нужного элемента из загружаемого файла на ajax+jquery/ 0931454574 AJAX и COMET 4 01.04.2011 14:37
Поиск нужного скрипта (выбор цвета) Djumpen Общие вопросы Javascript 1 02.04.2010 08:23