Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2014, 04:11
Новичок на форуме
Отправить личное сообщение для nattt Посмотреть профиль Найти все сообщения от nattt
 
Регистрация: 19.03.2014
Сообщений: 5

Выборку на JQuery переделать >>> Javascript
Привет!

На странице есть ссылки вида:
<a href="" onclick="return hs.expand(this)" >
На JQuery выборку по onclick="return hs.expand(this)" можно сделать так:
var temp = $('a[onclick="return hs.expand(this)"]');
Как сделать подобную выборку на Javascript?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2014, 04:27
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Либо так:
var links = document.querySelectorAll('a[onclick="return hs.expand(this)"]');

Либо перебором:
var allLinks = document.getElementsByTagName('a');
var links = [];
for (var i = 0; i < allLinks.length; i++) {
  if (allLinks[i].getAttribute('onclick') === 'return hs.expand(this)') links.push(allLinks[i]);
}
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2014, 04:50
Новичок на форуме
Отправить личное сообщение для nattt Посмотреть профиль Найти все сообщения от nattt
 
Регистрация: 19.03.2014
Сообщений: 5

Спасибо!

Есть функция, которая добавляет .CSS-свойство cursor при наведении на ссылку, вот она:
addRule('a', 'cursor: url(' + hs.graphicsDir + hs.expandCursor + '), pointer !important;');

Но мне нужно, чтобы не всем ссылкам добавляла, а только тем, у которых есть onclick="return hs.expand(this)".
Если использовать предложенный вариант:
var links = document.querySelectorAll('a[onclick="return hs.expand(this)"]');
addRule(links, 'cursor: url(' + hs.graphicsDir + hs.expandCursor + '), pointer !important;');

То скрипт перестает работать.
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2014, 05:18
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Так насколько я понимаю в addRule - первый аргумент-строка и есть CSS селектор. Пробовали что-нить типо такого:
addRule('a[onclick="return hs.expand(this)"]', 'cursor: url(' + hs.graphicsDir + hs.expandCursor + '), pointer !important;');
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2014, 05:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

nattt, чем-то ты странным занимаешься. Добавь ссылке нужный класс и все проблемы исчезают. Или ты не имеешь возможности поправить HTML?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 19.03.2014, 05:37
Новичок на форуме
Отправить личное сообщение для nattt Посмотреть профиль Найти все сообщения от nattt
 
Регистрация: 19.03.2014
Сообщений: 5

Сообщение от jsnb Посмотреть сообщение
Так насколько я понимаю в addRule - первый аргумент-строка и есть CSS селектор. Пробовали что-нить типо такого:
addRule('a[onclick="return hs.expand(this)"]', 'cursor: url(' + hs.graphicsDir + hs.expandCursor + '), pointer !important;');
СПАСИБО! Работает!
Сообщение от danik.js Посмотреть сообщение
nattt, чем-то ты странным занимаешься. Добавь ссылке нужный класс и все проблемы исчезают. Или ты не имеешь возможности поправить HTML?
Да, слишком много страниц придется править.
Ответить с цитированием
  #7 (permalink)  
Старый 19.03.2014, 07:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от nattt
Да, слишком много страниц придется править.
Я то думал есть какая-то серьезная причина ))
Поставь себе Notepad++ к примеру. В нем можно провести замену по всем файлам за раз.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 19.03.2014, 07:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Кстати, раз такие проблемы возникают, не задумывешься использовать для сайта какую-нибудь CMS'ку, с шаблонизацией, чтобы весь код был в одном шаблоне, а не продублирован в куче файлов?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 19.03.2014, 14:05
Новичок на форуме
Отправить личное сообщение для nattt Посмотреть профиль Найти все сообщения от nattt
 
Регистрация: 19.03.2014
Сообщений: 5

danik.js, у меня CMS. Я имела в виду править не просто страницы, а страницы сайта, данные из которых находятся в БД =)
Пользуюсь Notepad++ уже очень давно (хорошая вещь).
Ответить с цитированием
  #10 (permalink)  
Старый 19.03.2014, 15:18
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Сообщение от nattt
Да, слишком много страниц придется править.
Я называю это синдромом "Хуже уже не станет". Когда проект обрастает тонной стрёмного кода, уже ничего нельзя трогать, потому что тронешь - обязательно сломаешь что-нибудь (причём в самом неожиданном месте). Тогда новые фичи добавляются сбоку, самыми странными способами, потому что пофиг уже, но это делает ситуацию ещё хуже. Ичсх, "хуже уже не станет" закономерно приводит к "пизда проекту".
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок с сообщением - Javascript или jQuery qwermjk Общие вопросы Javascript 3 12.07.2010 09:48
jQuery и переменные JavaScript master-sheff AJAX и COMET 2 22.01.2010 21:28
На много ли код jQuery медленнее чистого javascript format1981 jQuery 8 06.11.2009 10:42
Необходим ли JavaScript для изучения JQuery? newbi jQuery 9 01.10.2009 15:24
Оцените блог на тему CSS, Javascript, jQuery Solo Ваши сайты и скрипты 6 23.07.2009 12:58