Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выборка тега <title> (https://javascript.ru/forum/jquery/39577-vyborka-tega-title.html)

Алек 04.07.2013 17:12

Выборка тега <title>
 
Здравствуйте!
Мне нужно реализовать скрипт, но перед этим мне хотелось бы задать вопрос о целесообразности и вообще о возможности использования тега <title>
Вот в чём смысл скрипта (предварительно):
Оператор switch case будет проверять на условия
switch ($('title').text()){
case 'главная': 
$('#home_page').addClass('active'); //home_page элемент верхнего меню
break;
case 'планета': 
$('#planet').addClass('active');  //planet элемент верхнего меню
break;
}

.active {                               //css правила для класса .active
background-color: red;
color: white;
}


Смысл в том чтоб при переходе на страницу где текст в тайтле описывает тему этой страницы элемент меню для этой страницы должен менять цвет, а в слайдер должна вставать соответствующая картинка.
Однако я не видел чтоб кто-то так реализовывал, может другие способы для этого применяются?
Подскажите плиз...:)
Заранее благодарен.

mta88 04.07.2013 17:26

использовать title для логики это никуда не годится конечно же
как минимим потому, что title может часто менятся для CEO и вообще это побочный элемент

Цитата:

может другие способы для этого применяются
класс 'active' для меню обычно устанавливают на сервере

Алек 04.07.2013 17:39

Цитата:

Сообщение от mta88 (Сообщение 260163)
класс 'active' для меню обычно устанавливают на сервере

То есть для этого используется Php?
Сам блок меню будет в отдельном tpl файле и будет подключаться
require_once "html/topmenu.php";

Сейчас поинтересуюсь этим вопросом.
Спасибо.

mta88 04.07.2013 17:45

Цитата:

Сообщение от Алек (Сообщение 260169)
То есть для этого используется Php?

да точно, точно:)
во всех cms и фреймворках так
все пацаны подтвердят

danik.js 04.07.2013 18:24

Отвечаю за базар. А использовать title - западло ваще.

Алек 04.07.2013 18:52

Точняк, залез в панель управления, за текст тайтла отвечает функция <title><?php wp_title(); ?></title>
Но у них mwc вообще никакой, я поэтому и решил на свой движок переходить. Что ж, буду думать как это реализовать на php.
Цитата:

Сообщение от danik.js (Сообщение 260186)
Отвечаю за базар. А использовать title - западло ваще.

А чё это так?
Такой же вроде элемент страницы.:nono:
Не совсем понимаю почему его игнорят, какие для этого причины?

рони 04.07.2013 19:01

Цитата:

Сообщение от Алек
Однако я не видел чтоб кто-то так реализовывал, может другие способы для этого применяются?

Возможно ли такое на javascript

danik.js 04.07.2013 19:12

Цитата:

Сообщение от Алек
Не совсем понимаю почему его игнорят, какие для этого причины?

Ну очевидно же. Тайтл может поменяться. Он служит другим целям. Не стоит завязывать на нем функционал.

Алек 04.07.2013 19:24

рони,
Спасибо, инфа как раз по теме.
Только я не понимаю каким образом можно вытащить в условия атрибут href загруженной страницы. То есть какому объекту он принадлежит?
if($(this).attr('href') = 'index.html'){do this};

что в этом случае подставить на место this?

danik.js 04.07.2013 19:50

Сколько гругом jQuery-нутых стало... Ну причем тут jQuery, ну ё маё..

document.location.href либо window.location.href.
Можно просто location.href, можно в конце концов просто написать location (оно преобразуется к строке как нужно). И не нужно городить тыщу ифов.
Создаешь карту ключей-значений:

var map = {
    home: 'bla-bla',
    about: 'foo-bar'
};

var myKey = 'about';
var myBla = map[myKey];

// do stuff, например $('#' + myBla).show().siblings().hide();

Алек 04.07.2013 21:20

Цитата:

Сообщение от danik.js (Сообщение 260217)
Создаешь карту ключей-значений:

var map = {
    home: 'bla-bla',
    about: 'foo-bar'
};

var myKey = 'about';
var myBla = map[myKey];

// do stuff, например $('#' + myBla).show().siblings().hide();

danik.js
Я не совсем понимаю что такое карта ключей-значений.
Можете поподробнее объяснить как это применяется, а ещё лучше дайте плиз ссылку на материал об этом.
Буду вам очень благодарен.:)
Заранее большое вам спасибо!

danik.js 04.07.2013 21:39

Ну я же привел пример. Хорошо, покажи как ты собрался писать свой код. с If'ами или что там. Показывай. Можешь пока прочитать http://ru.wikipedia.org/wiki/%D0%A5%...B8%D1%86%D0%B0
А карта ключей-значений - это я хреново выразился. Это по сути ассоциативный массив, или хэш, что есть набор ключ/значение, а по английски еще называют map (что в первом пришедшем на ум переводе - карта :) )

Алек 04.07.2013 22:18

danik.js,
Вот у меня такая логика:
function for_topmenu(){
		var count = $('location').attr('src'); //Записываю в переменную атрибут src загруженной страницы
		if($('#topmenu div a').attr('src') = count){	//Сравниваю атрибуты ссылок с переменной
		$('#topmenu div').removeClass('active');  //Убираю у всех блоков класс .active
		$(this).parent().addClass('active');  //Добавляю его к родителю ссылки
		}
	}
	for_topmenu();


Сейчас прочитаю статью о хеш-таблице.
Спасибо!:)

BallsShaped 04.07.2013 22:33

Алек, лол! Комментировать код, который и так читается, это странно:
var x = 5; //Записываю в переменную число 5

А вообще, просто загляни в консоль

Алек 04.07.2013 23:33

Цитата:

Сообщение от BallsShaped (Сообщение 260281)
А вообще, просто загляни в консоль

Да, видел, но в этом и вся проблема которую мы обсуждаем (имхо)
Делаю проверку левой части условия:
alert ($('location').attr('src'));

Консоль выводит:
undefined
alert ($('window.location.href').attr('src'));

Консоль выводит:
undefined
alert ($('document.location.href').attr('src'));

Консоль выводит:
undefined
А проверка
alert ($('#big_1 img').attr('src'));

Выводит images/gal/1.jpg - нормальный путь.

danik.js 05.07.2013 06:32

Вот именно поэтому нельзя браться за jQuery пока не изучишь основы JS.
alert (window.location);
alert (document.location)

Алек 05.07.2013 15:30

danik.js,
Я изучаю параллельно и JS и JQuery.
Изучал по видеокурсу Е.Попова "javascript + jquery", там сначала работа с JS, потом с JQuery.
Вчера скачал книгу " Подробное руководство по продвинутому JavaScript", здесь на форуме нашёл (Спасибо bes !) там рассматривается и JS и JQuery.Так что всё сразу стараюсь делать, но я ещё только учусь, поэтому и возникают проблемы с элементарными вещами.
Кстати ещё вопрос такой:
Я ещё занимаюсь по работе с массивами в php по документации http://php.ru/manual/ref.array.html, в JS примерно такие-же методы работы с массивами, да?
Как бы моя логика такая: если я умею работать с массивами в php, с массивами в js я без труда справлюсь, достаточно только будет документацию посмотреть.


Часовой пояс GMT +3, время: 12:25.