Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.06.2013, 18:06
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Спасибо огромное, а подскажите как обеспечить кроссбраузерность nextElementSibling?
Ответить с цитированием
  #12 (permalink)  
Старый 23.06.2013, 18:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от djonA Посмотреть сообщение
Спасибо огромное, а подскажите как обеспечить кроссбраузерность nextElementSibling?
также как слова в гугле забиваются
Ответить с цитированием
  #13 (permalink)  
Старый 23.06.2013, 18:21
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

так и не нашел как решить проблему nextElementSibling в ie 8.

Читал читал но так и не нашел как обеспечивать кроссбраузерность
Ответить с цитированием
  #14 (permalink)  
Старый 23.06.2013, 19:02
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

а как обычно всё делают - проверяют на существование
if (elem.nextElementSibling) ....
else ...

почитай про узлы
http://learn.javascript.ru/basic-dom-node-properties

конкретно для таблиц и nextSibling подойдёт
Ответить с цитированием
  #15 (permalink)  
Старый 23.06.2013, 19:16
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

ладно, не читай, выходной
<div>
	<span>1</span>
	<span>2</span>
</div>
<span id="parent"></span>
<script> 
function nextElementSibling(elem) {
	if (elem.nextElementSibling) {
		return elem.nextElementSibling;
	} else {
		while (elem.nextSibling) {
			if (elem.nextSibling.nodeType == 1) {
				return elem.nextSibling;
			} else {
				elem = elem.nextSibling;
			}
		}
	}
	return null;
}
window.onload = function () {
	var spans = document.getElementsByTagName('span');
	alert(nextElementSibling(spans[0]).innerHTML);
	alert(nextElementSibling(spans[1]));
}
</script>
Ответить с цитированием
  #16 (permalink)  
Старый 24.06.2013, 21:27
Новичок на форуме
Отправить личное сообщение для Olggga Посмотреть профиль Найти все сообщения от Olggga
 
Регистрация: 24.06.2013
Сообщений: 3

А подскажите как соединить вот это и вот это:

<table>   
     <tr>   
         <td class="sumItg">1</td>  
         <td class="test">2</td>  
         <td class="sumItg">2</td>   
         <td class="test">3</td>  
         <td class="sumItg">3</td>   
         <td class="test">4</td>  
     </tr>   
 </table>   
 <span id="parent"></span>  
 <script>   
 window.onload = function () {  
     var sumItg = 0;  
     var td = document.getElementsByTagName('td');  
     var i = td.length;   
     while(i--) {  
         if(td[i].className == 'sumItg') {   
             sumItg += td[i].innerHTML * td[i].nextElementSibling.innerHTML;  
        }  
     }  
     document.getElementById('parent').innerHTML = sumItg;  
 }  
 </script>





<div>  
   <span>1</span>  
    <span>2</span>  
</div>  
 <span id="parent"></span>  
  <script>   
 function nextElementSibling(elem) {  
     if (elem.nextElementSibling) {  
         return elem.nextElementSibling;  
    } else {  
         while (elem.nextSibling) {  
             if (elem.nextSibling.nodeType == 1) {  
                return elem.nextSibling;  
            } else {  
                 elem = elem.nextSibling;  
             }  
         }  
     }  
     return null;  
}  
 window.onload = function () {  
     var spans = document.getElementsByTagName('span');  
     alert(nextElementSibling(spans[0]).innerHTML);  
     alert(nextElementSibling(spans[1]));  
 }  
 </script>



что 1 код был кросбраузерный и работал в ie 7-8, а то у меня что то не получается
Ответить с цитированием
  #17 (permalink)  
Старый 24.06.2013, 21:31
Новичок на форуме
Отправить личное сообщение для Olggga Посмотреть профиль Найти все сообщения от Olggga
 
Регистрация: 24.06.2013
Сообщений: 3

пробую так не работает:

<table>   
     <tr>   
        <td class="sumItg">1</td>  
         <td class="test">2</td>  
        <td class="sumItg">2</td>   
         <td class="test">3</td>  
         <td class="sumItg">3</td>   
         <td class="test">4</td>  
    </tr>   
 </table>   
 <span id="parent"></span>  



<script>

 function nextElementSibling(elem) {  
     if (elem.nextElementSibling) {  
         return elem.nextElementSibling;  
    } else {  
         while (elem.nextSibling) {  
             if (elem.nextSibling.nodeType == 1) {  
                return elem.nextSibling;  
            } else {  
                 elem = elem.nextSibling;  
             }  
         }  
     }  
     return null;  
} 

	 window.onload = function () { 
   var sumItg = 0; 
    var td = document.getElementsByTagName('td'); 
   var i = td.length;  
    while(i--) { 
       if(td[i].className == 'sumItg') {  
             sumItg += +td[i].innerHTML * td[i].nextElementSibling.innerHTML; 
         } 
     } 
     document.getElementById('parent').innerHTML = sumItg; 
 } 
 </script>
Ответить с цитированием
  #18 (permalink)  
Старый 24.06.2013, 21:57
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

вот так попробуйте:
<html>
	<body>
<table>   
     <tr>   
        <td class="sumItg">1</td>  
         <td class="test">2</td>  
        <td class="sumItg">2</td>   
         <td class="test">3</td>  
         <td class="sumItg">3</td>   
         <td class="test">4</td>  
    </tr>   
 </table>   
 <span id="parent"></span>  



<script>

function nextElementSibling(elem)
	{  
	if (elem.nextElementSibling)  
		return elem.nextElementSibling;  
 
	while (elem.nextSibling)
		{
		if (elem.nextSibling.nodeType == 1)
			return elem.nextSibling;
		elem = elem.nextSibling;
		}

	return null;  
	}

window.onload = function ()
	{ 
	var sumItg = 0; 
	var td = document.getElementsByTagName('td'); 
	var i = td.length - 1;  
	while(i--)
		{ 
		if(td[i].className == 'sumItg')
			sumItg += parseInt(td[i].innerHTML) * parseInt(nextElementSibling(td[i]).innerHTML);
		} 
	document.getElementById('parent').innerHTML = sumItg; 
	}
 </script>


	</body>
</html>


ничего сложного нет. думайте..
Ответить с цитированием
  #19 (permalink)  
Старый 24.06.2013, 21:58
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Olggga
пробую так не работает:
djonA, это ты?
Ответить с цитированием
  #20 (permalink)  
Старый 24.06.2013, 22:19
Новичок на форуме
Отправить личное сообщение для Olggga Посмотреть профиль Найти все сообщения от Olggga
 
Регистрация: 24.06.2013
Сообщений: 3

Да я с дрйгого компа зашел.
Спасибо большое всем заработало!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 3 17.04.2018 22:54
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
БД, JS и PHP или как всё это сложить lazerru Общие вопросы Javascript 2 15.04.2013 17:20
JS мастер, 2 месяца на Бали, потом Москва офис, белая з/п от 90000 руб Lingualeo Работа 3 04.05.2012 14:33