Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2010, 13:25
Новичок на форуме
Отправить личное сообщение для LF-A Посмотреть профиль Найти все сообщения от LF-A
 
Регистрация: 29.01.2010
Сообщений: 3

Элементарный пример, вопрос от новчика
Здравствуйте! начал изучение java script и естественно куча вопросов и ничего не понятно) но так пошло что лучше всего языки усваиваются на примерах, поэтому прошу помочь мне разобраться в одном простом примере:


function hideMeFromMenu()
{
    if (window.nav) {
    это если окно nav тоеть навигации я так понимаю? только как он так определяет?
        var elements = geTN((nav[0]?nav[0]:nav),"a");
        эта строчка мне вообще не понятна(( поясните плз
        var space;
        объявляем переменную спейс
        for (i=0;i<=elements.length-1;i++) {
        цикл пошел, i присваиваем 0, и если i тоесть пока 0 меньше или равно длинне символом того непонятного параметра -1; то i становится +1
            space = elements[i].innerHTML.indexOf(" ");
            спейс задаем через иннерхтмл я так пониаю это какая то глобальная функция в яве для изменения страницы дома или типа того, задаем ей пробел тоесть ничего?
            if (space>-1 && space<4 && i>1) elements[i].innerHTML = elements[i].innerHTML.substring(space);
            и если спейс больше -1 и меньше 4 тоесть это как раз получается МОИ я так понимаю и i > 1 то вауля заменяем мои на пробел, так?
        }
    }
}

этот скрипт убирает на сайте вконтакте "Мои" из меню слева, так вот я хочу сделать не что подобное только, чтобы из личных сообщений удалитьк кнопки "Это спам" но у меня ничего не выходит, мне кажется что это не очень трудно для знатаков, но для меня невозможно, если не трудно подскажите как, я быстро врублюсь и выучусь)

function geTN(parent,name){
	if(!parent)return null;
	return parent.getElementsByTagName(name);
это я так понимаю какойто aliase сокрашение для частого приминения?
	
}
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2010, 13:37
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

function hide() {
  // Получаем элемент ol, в котором размещены ссылки. У него id="nav"
  var nav = document.getElementById("nav");

  // Выбираем из него все ссылки
  var links = nav.getElementsByTagName("a");

  // Проходимся по массиву ссылок
  for(var i=0; i< links.length; i++) {
    // Удаляем в каждой ссылке строчку "Мои "
    links[i].innerHTML = links[i].innerHTML.replace("Мои ", "");
  }
}
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2010, 13:43
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

function hideMeFromMenu()
{
    if (window.nav) { // если у объекта window (главный объект, в него попадают все глобальные переменные) есть свойство nav
        var elements = geTN((nav[0]?nav[0]:nav),"a"); /* вызываем ф-ию geTN, передаем ей аргументом первый элемент массива nav, если nav — массив. Иначе передаем саму nav */
        var space; // объявление переменной space без присвоения значения
        for (i=0;i<=elements.length-1;i++) { /*арифметический цикл. начальное значение переменной-счетчика 0, конечное — количество элементов -1. После каждой итерации значение счетчика будет увеличено на 1.*/
            space = elements[i].innerHTML.indexOf(" "); // в space записываем позицию первого вхождения пробела в содержание i-того элемента
            if (space>-1 && space<4 && i>1) elements[i].innerHTML = elements[i].innerHTML.substring(space); // если пробел содержится в строке и его позиция меньше 4 и это не первые 2 тега, то вырезаем из строки все, что находится до 1 пробела
        }
    }
}

function geTN(parent,name){ /*функция возвращает все элементы определенного тега name, находящиеся внутри тега parent*/
	if(!parent)return null;
	return parent.getElementsByTagName(name);	
}


Написано кривовато. У цикла, как минимум, 2 лишние итерации, условие проще было задать как i<elements.length, счетчик цикла становится глобальной переменной.
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2010, 14:23
Новичок на форуме
Отправить личное сообщение для LF-A Посмотреть профиль Найти все сообщения от LF-A
 
Регистрация: 29.01.2010
Сообщений: 3

Сообщение от Мараторий Посмотреть сообщение
function hide() {
  // Получаем элемент ol, в котором размещены ссылки. У него id="nav"
  var nav = document.getElementById("nav");

  // Выбираем из него все ссылки
  var links = nav.getElementsByTagName("a");

  // Проходимся по массиву ссылок
  for(var i=0; i< links.length; i++) {
    // Удаляем в каждой ссылке строчку "Мои "
    links[i].innerHTML = links[i].innerHTML.replace("Мои ", "");
  }
}
Громадное спасибо, это даст мне старт для дальнейшего разбирательства)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Не работает пример использования AJAX nuker AJAX и COMET 4 19.03.2009 18:31
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20