Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.04.2010, 07:52
Аспирант
Отправить личное сообщение для Мендыбаев Игорь Посмотреть профиль Найти все сообщения от Мендыбаев Игорь
 
Регистрация: 01.07.2009
Сообщений: 31

Несколько вопросов к автору скрипта.

1. Не знал, что значение переменной может одновременно быть выражением. var reg = /^d\d{1,}$/;
2. Зачем два раза писать var? Почему нельзя задать переменные через запятую, таким образом:
var reg = /^d\d{1,}$/, divs = document.getElementsByTagName('div');
3. На сколько я знаю при for, значение переменной записывается уже в for (пример: (i = 1; i <= 10; i++)... и зачем в скобках опять писать var?
4. Что значит, &&?
5. Объясните вообще дословно, построчно как все это действует. Думаю это будет очень хорошим уроком по javascript. Так что если не трудно.

Кстати кто понимает, думаю не помешает и ваши комментарии.
Заранее спасибо
Ответить с цитированием
  #12 (permalink)  
Старый 12.04.2010, 09:57
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Сообщение от lammeR Посмотреть сообщение
Skipp,
А что такое "+1" здесь-> divs[i].id.search(reg) + 1, ищём id в названии, которого на цифру 1 больше?
search(reg) - возвращает отсчитываемое от нуля индексное значение первого символа в строке. А если вхождений нет, то возвращает -1 .
Так если стока не найдена то получится -1 + 1 = 0(false), если найдёт, а найти получится, только начиная с первого элемента (в выражении), то получится 0 + 1 = 1 (true).
__________________
.
Ответить с цитированием
  #13 (permalink)  
Старый 12.04.2010, 10:31
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Сообщение от Мендыбаев Игорь Посмотреть сообщение
Несколько вопросов к автору скрипта.

1. Не знал, что значение переменной может одновременно быть выражением. var reg = /^d\d{1,}$/;
2. Зачем два раза писать var? Почему нельзя задать переменные через запятую, таким образом:
var reg = /^d\d{1,}$/, divs = document.getElementsByTagName('div');
3. На сколько я знаю при for, значение переменной записывается уже в for (пример: (i = 1; i <= 10; i++)... и зачем в скобках опять писать var?
4. Что значит, &&?
5. Объясните вообще дословно, построчно как все это действует. Думаю это будет очень хорошим уроком по javascript. Так что если не трудно.

Кстати кто понимает, думаю не помешает и ваши комментарии.
Заранее спасибо
1. Можно ещё использовать RegExp(), а вообще суть вопроса не понял)
2. Почему же можно, это чисто желание программиста. Я вот решил написать так=)
3. Честно не помню откуда у меня такая привычка появилась и не помню зачем, сам бы хотел узнать. А так вообще по мучай вот этот код, запусти а потом удали var в цикле и ещё раз запусти=)
Если поймёшь, зачем я так сделал напиши=)))
<script type="text/javascript">
var i = 32;
function open_reshenie(reshenie)
{
	alert(i);
	var reg = /^d\d{1,}$/;
	var divs = document.getElementsByTagName('div');
	for(var i = 0; i<divs.length; i++)
		if(divs[i].id.search(reg) + 1 && divs[i].id!=reshenie) divs[i].style.display='none';
	alert(i);	
	var obj=document.getElementById(reshenie);
	obj.style.display=='none' ? obj.style.display='block' : obj.style.display='none';
}
</script>

4. Логический оператор (И).
5.
var reg = /^d\d{1,}$/; //регулярное выражение, его суть (начало строки + d + числовое значение от 1 символа до дохрена) =)
	var divs = document.getElementsByTagName('div'); // Получаем все элементы div находящиеся на странице
	for(var i = 0; i<divs.length; i++) //Запускаем цикл
		if(divs[i].id.search(reg) + 1 && divs[i].id!=reshenie) divs[i].style.display='none'; // задаем всем дивам с id == d + числовое значение стиль display='none', кроме того что нам надо показать

	var obj=document.getElementById(reshenie); //Получаем элемент блока, который необходимо вывести
	obj.style.display=='none' ? obj.style.display='block' : obj.style.display='none'; //Проверяем стиль display если он равен none то делаем его равным block, а если block , то делаем его равным none


В общем как-то так. Я сам ещё ток начал учить, понимать тонкости js, поэтому сильно не ругайте, если что не понятно и не по батенски=)
__________________
.
Ответить с цитированием
  #14 (permalink)  
Старый 12.04.2010, 12:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Мендыбаев Игорь
Думаю это будет очень хорошим уроком по javascript.
Это будет плохим уроком. Это самые азы, описанные в любом захудалом учебнике.
Ответить с цитированием
  #15 (permalink)  
Старый 12.04.2010, 12:38
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

В учебнике, не всегда найти, то что можно понять.
__________________
.
Ответить с цитированием
  #16 (permalink)  
Старый 12.04.2010, 12:40
Аспирант
Отправить личное сообщение для Мендыбаев Игорь Посмотреть профиль Найти все сообщения от Мендыбаев Игорь
 
Регистрация: 01.07.2009
Сообщений: 31

Грамотный ответ!!!
Правда не пойму для чего тут alert???
Var в цикле убирал, но не понял)))

Особенно понравился ответ на пятый вопрос, спасибо)))
Кстати на счет захудалых учебниках... может подскажешь, что нибудь хорошее???
Ответить с цитированием
  #17 (permalink)  
Старый 12.04.2010, 12:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Мендыбаев Игорь
Кстати на счет захудалых учебниках...
http://javascript.ru/doctree -- очень даже не захудалый.
Ответить с цитированием
  #18 (permalink)  
Старый 12.04.2010, 12:47
Аспирант
Отправить личное сообщение для Мендыбаев Игорь Посмотреть профиль Найти все сообщения от Мендыбаев Игорь
 
Регистрация: 01.07.2009
Сообщений: 31

Ок. спасибо,
но я его уже почитываю...
А есть еще где по проще?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие блоков после получения ответа nemo Общие вопросы Javascript 1 22.11.2009 10:22
Скрытие iframe через js Veter Events/DOM/Window 7 03.10.2009 01:16
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41
Скрытие текста на странице за ссылкой Vlad44 Общие вопросы Javascript 2 13.01.2009 18:02
Копирование блоков страницы(или целиком) Phoenix Общие вопросы Javascript 30 24.03.2008 23:46