Сообщение от Мендыбаев Игорь
|
Несколько вопросов к автору скрипта.
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, поэтому сильно не ругайте, если что не понятно и не по батенски=)