Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2014, 15:41   #1
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию Разобрать массив

Ребят. Выручайте, не знаю как разобрать подобный массив.
Есть переменная которая содержит его...
Необходимо достать "3"
Изображения
Тип файла: jpg photo-1.jpg (19.7 Кб, 79 просмотров)
Predator199 вне форума Ответить с цитированием
Старый 06.06.2014, 16:49   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
myObject[408][3]
не?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 06.06.2014, 21:56   #3
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Спс. До этого, что та не получалось...
Не подскажете. Не могу найти, как правильно прописать.
Необходимо указать последовательность. К примеру
$('li' > 'li)....
А как его указать на чистом js?
document.getElementsByTagName("li")
Predator199 вне форума Ответить с цитированием
Старый 06.06.2014, 22:16   #4
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

PHP код:
$('li' 'li) 
Так работать не будет. Вернее будет написать
PHP код:
$('li > li'
Аналог этой функции на нативном:
PHP код:
querySelectorAll('li > li'
ATL вне форума Ответить с цитированием
Старый 07.06.2014, 09:01   #5
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Цитата:
Сообщение от ATL Посмотреть сообщение
PHP код:
$('li' 'li) 
Так работать не будет. Вернее будет написать
PHP код:
$('li > li'
Аналог этой функции на нативном:
PHP код:
querySelectorAll('li > li'
А как на чистом js та будет? Без query...
Predator199 вне форума Ответить с цитированием
Старый 07.06.2014, 10:10   #6
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Цитата:
Сообщение от Predator199 Посмотреть сообщение
А как на чистом js та будет? Без query...
А Вы что не понимаете что означает слово нативный?!
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 07.06.2014, 13:49   #7
progOk
 
Регистрация: 07.06.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Predator199 Посмотреть сообщение
А как на чистом js та будет? Без query...
querySelectorAll это уже нативный JS, правда в старых браузерах работать не будет, а работает он по принципу CSS селекторов. В данном случае "li > li" работать не будет, потому что это невалидный HTML какой то.
progOk вне форума Ответить с цитированием
Старый 09.06.2014, 14:03   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
В данном случае "li > li" работать не будет, потому что это невалидный HTML какой то.
Валидность DOM это одно, а работа JS совсем другое. Функция отработает корректно.

Единственное, я бы упомянул, что нативная функция querySelector - это не полный аналог Sizzle, например она не сможет разобрать вам такой css-селектор: "div:eq(2)"
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 12.06.2014, 21:30   #9
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

progOk в целом прав.
PHP код:
querySelectorAll('li > li'
Результатом этого конечно будет не undefined и не null, но всё же пустой объект, который в целом бесполезен. И $('li > li') отработает так же.

В свою очередь:
PHP код:
document.querySelectorAll('li li')
document.querySelectorAll('li > * > li')
$(
'li li')
$(
'li > * > li'
Отработают корректно и вернут адекватный результат. Но т.к. вопрос был о другом, то в целом ТС должен быть счастлив.
ATL вне форума Ответить с цитированием
Старый 13.06.2014, 19:59   #10
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

ATL, вы тоже путаете валидность DOM и работу JS.

С одной стороны, действительно, согласно спецификации <li> не обязательно закрывать. Поэтому при разборе полученного HTML-кода (код ниже) браузер увидит первый <li> - создаст один нод, далее увидит открытие второго <li> - создаст ещё один нод. Закрытия </li> проигнорирует. Мы увидим один список с двумя позициями.
Код:
<ul><li>1<li>2</li></li></ul>
Поэтому создаётся ложное ощущение, что li в li вложить невозможно => соответственно структуры "li > li" не может быть в принципе. Это не так.

Вот JS уже пофиг на все эти необязательные закрывающие тэги. Он работает очень чётко, как с XML:
Код:
var ul = document.createElement('ul');
var li1 = document.createElement('li');
var li2 = document.createElement('li');
ul.appendChild(li1);
li1.appendChild(li2);
document.body.appendChild(ul);
console.log(document.querySelectorAll('li > li')); // [object NodeList]
console.log(document.querySelectorAll('li > li')[0]); //[object HTMLLIElement]
^-.-^ My GitHub

Последний раз редактировалось Fenex; 13.06.2014 в 20:04.
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разобрать программу patrik14 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.12.2012 05:08
Разобрать сайт Rost93 Свободное общение 4 16.06.2012 20:13
URL надо разобрать в массив best island Общие вопросы .NET 2 18.08.2010 10:20
разобрать ноутбук Ulex Компьютерное железо 7 28.07.2010 21:52
Разобрать программу DarkDeivel Общие вопросы Delphi 13 21.09.2008 14:17