Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2013, 23:19
Интересующийся
Отправить личное сообщение для Torero Посмотреть профиль Найти все сообщения от Torero
 
Регистрация: 11.03.2013
Сообщений: 20

Получение параметра обьекта
Есть сайт с обьявлениями Slando.ua. Захожу на к примеру вот это обьявление. http://shostka.sum.slando.ua/obyavle...promoted;r:;s:
Номер телефона по умолчанию скрыт. Открывается по клику на кнопку. Хочу спарсить его) Нахожу по тегу элемент:
s = document.getElementsByTagName('a')
s[51] - искомый кусок, содержащий следующее(смотрю через Firebug):

<a class="clicker {clickerID:'phone_details','path':'phone', 'id':'5j1mD', 'id_raw': '78415159' } atClickTracking link spoiler small link-phone nowrap" rel="phone" href="javascript:void(0);">

Если выполнить функцию s[51].click(); то картинка появится. При этом в Firebug отобразится get-ответ:

"<img src=\"http:\/\/shostka.sum.slando.ua\/ajax\/misc\/phoneimage\/5j1mD\/?nomobile=1\" class=\"contactimg\" \/>"

Как мне или записать весь этот ответ в переменную или как вытащить 'id' со свойств класса? s[51].id ничего не возвращает.
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2013, 23:53
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

document.querySelector("a[rel='phone']").className.match(/\{.*\}/)[0]
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2013, 00:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<a class="clicker {clickerID:'phone_details','path':'phone', 'id':'5j1mD', 'id_raw': '78415159' } atClickTracking link spoiler small link-phone nowrap" rel="phone" href="javascript:void(0);">
<script>
    var link = document.querySelector('a.clicker');
    var data = link.className.match(/{.*}/);
    var object = eval( '(' + (data || 'null') + ')');
    if (object) {
        alert(object.id);
    }
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2013, 00:21
Интересующийся
Отправить личное сообщение для Torero Посмотреть профиль Найти все сообщения от Torero
 
Регистрация: 11.03.2013
Сообщений: 20

Спасибо. Воспользовался первым ответом и сделал вот так:
getid = document.querySelector("a[rel='phone']").className.match(/\{.*\}/)[0];
m = getid.split(':');
n = m[3].split('\'');
href = 'http://shostka.sum.slando.ua/ajax/misc/phoneimage/'+n[1]+'/?nomobile=1';
alert(href);

Но, как я понимаю, вариант во втором комменте предпочтительней, потому что он будет более стойким к всяческим изменениям внутри самого сайта. Спасибо большое) Буду ковыряться дальше.
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2013, 10:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

danik.js,
Ай-ай-ай, eval'ить почём зря - плохой вариант.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2013, 12:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Aetae
Ай-ай-ай, eval'ить почём зря - плохой вариант.
А как нужно? Научи..
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2013, 01:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

JSON.parse же. А вообще лучше вручную - всё равно уж регулярку заюзал.)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 04.04.2013, 02:13
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Aetae
JSON.parse
Так там не well-formed JSON, или как это называется, литерал чтоли.
Вобще какой тормоз до такого вобще додумался. Мало того что не JSON, так еще и в класс засунули.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение параметра get Ваяс Элементы интерфейса 4 06.04.2012 13:38
Переодическое получение ответа от сервера demoniqus AJAX и COMET 6 22.06.2010 16:09
Извлечь значение параметра из location.search регулярным выражением? Бобр Общие вопросы Javascript 8 26.01.2010 01:01
AJAX, вызов из метода обьекта Logo Общие вопросы Javascript 4 20.06.2009 23:35
формирование обьекта или массива на основе полей формы birst Общие вопросы Javascript 1 05.12.2008 17:50