- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вопрос - как ПРАВИЛЬНО добавить элемент в data.oVar?
Сейчас сделан грязный хак -
Ожидаемо, но не работает:
Не сказал бы, что я силён в JS - так что если тут где-то явно что-то не так - не ругайтесь, а подскажите, пожалуйста, как сделать правильно :)
элементарно, Ватсон.
object.property=value
в т.ч. object.method=function(params) {}
В вашем случае data.oVar.что-то=чему-то
Только я не припомню чтобы массив обозначался {}
Если это именно массив, то надо обращаться через []
Посмотрели бы исходники самого Jquery =)
Ожидаемо - но не работает :)
data.oVar.$(this).attr('name') = $(this).attr('value');
Ругается, что $ is not a function!
Если в нотации json передать массив то вроде бы можно только
задать строку в формате s = '{"a":"b","b":"a"}';
а затем сделать eval(s);
вы че то не догоняете.
$ это функция JQuery на верхнем уровне, она не может быть методом объекта oVar, если вы её насильно не пропишете.
Я кажется понял что вы хотите сделать.
Во-первых для этого в jQuery есть чудная функция form.serialize
Во-вторых использование переменных в именах объектов это очень извратно. хз как это сделать и возможно ли это. Вам тогда нужно объявить oVar как массив (Array или []) а не как объект
В-третьих, не надо лепить jQuery там, где это не является необходимым.
data.oVar[this.name]=this.value
neolord добавил 03.06.2009 в 17:53
Если в нотации json передать массив то вроде бы можно только
задать строку в формате s = '{"a":"b","b":"a"}';
а затем сделать eval(s);
вы тоже не отличаете {} от [] ?
{} - это нотация объекта в широком смысле
а [] - это нотация массива.
JQuery к тому же сам евалюирует строчки в формате JSON
Спасибо.)
Но по неведомой мне причине - когда я обьявляю oVar как Array или [], а потом делаю из него хеш - это всё не проходит в JSON.stringify(data) - пустой получается элемент, - хотя на самом деле к нему можно обратиться и получить данные.
Перед передачей массива функции stringify с ним ничего не надо делать. Но ваще лучше не полагаться на наличие хорошей поддержки JSON в браузере и юзать например http://code.google.com/p/jquery-json/
вы че то не догоняете.
вы тоже не отличаете {} от [] ?
{} - это нотация объекта в широком смысле
а [] - это нотация массива.
JQuery к тому же сам евалюирует строчки в формате JSON
Встречный вопрос тогда: чем отличается с точки зрения json массив с не целочисленными ключами и соотношение поле.значение ?
Элементарный пример, если попробовать код:
посмотрите как массив преобразуется в нотацию json,
Кроме того известный факт что к полям объекта через js можно обращаться хоть как к объекту, хоть как к массиву, странность конечно, но имеет место
Видимо это объясняется тем что объект все-таки это совокупность не только полей, но и методов.JSON же передает только набор ассоциированных значений(по существу массива), а там уж на усмотрение программиста как данные интерпретировать.
чем отличается с точки зрения json массив с не целочисленными ключами и соотношение поле.значение
Пожалуйста -
{field:value,field2:value2} - instanceof Object
[field:value,field2:value2] - instanceof Array.
Чем Array от Object отличается, надеюсь, не надо объяснять?
А ваш пример несколько неуместен, потому что никто вам не обещал что массив PHP будет преобразовываться этой функцией из PECL в массив JSON. А аналога прототипируемых объектов в PHP просто нет. Лучше посмотрите как происходит преобразование из Array в JSON на стороне Javascript.
Пожалуйста -
[field:value,field2:value2] - instanceof Array.
Чем Array от Object отличается, надеюсь, не надо объяснять?
может я что то не так делаю, но такой способ задания массива,как не старался, в js всегда выдает ошибку. Подозреваю, что можно использовать только [value1,value2,value3]
а по поводу разницы объясните тогда вот такую штуку:
и все нормально работает во всех случаях
Тут есть один нюанс, который описан в документации O'Reily. К сожалению, по неясной мне причине, я не могу скопипастить из этого пдфа. Суть в том, что строковые индексы массива ведут себя как свойства объекта. т.е.
выдаст 123, а текстовые индексы пропустит, зато mss.text==mss['text']; С числовыми индексами так не прокатит. Так что в чем то вы правы, но таки обратите внимание, КАК сериализуется объект, и как - массив.
Из чего можно сделать вывод что таки можно давать объектам свойства с переменными через [] - этого я кстати не знал. Но разница между конструктором {} и [] все таки есть.
>>> var Arr1=[1,2,3]
>>> for (i in Arr1) console.log(i);
0
1
2
each
eachSlice
all
any
collect
detect
findAll
grep
include
inGroupsOf
inject
invoke
max
min
partition
pluck
reject
sortBy
toArray
zip
size
inspect
find
select
member
entries
_reverse
_each
clear
first
last
compact
flatten
without
uniq
intersect
clone
toJSON
>>> Arr2={name:'value',other:'some'}
Object name=value other=some
>>> for (i in Arr2) console.log(i);
name
other
Как не сложно видеть, с объектом, созданным именно как массив, можно работать именно как с массивом - использовать специфические методы. Кстати Прототиповская функция toJSON с типом Array срабатывает именно так как и ожидается - строковые свойства игнорируются.
Так что, обращаясь к ТСу, могу сказать: Disregard this, I suck cocks =)