[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Slays: общие вопросы
Slays
Не примите данную тему за наглость. Начал изучать JavaScript и по ходу время от времени появляются вопросы. Вопросы общего типа, по-этому создавать под каждый отдельную темы будет не рационально.

Являюсь постоянным пользователем данного форума, по-этому, если такое возможно, буду задавать все наболевшие вопросы в данной теме. Кому не сложно, время от времени можете заходить помогать, на это собственно и надеюсь =)

Надеюсь модерирующая структура не будет против такой темы.
user posted image

Самые основы основ и то, что написано в учебниках - знаю, подобные вопросы постараюсь не задавать.


первый вопрос: начал работу с массивами и столкнулся с массой неудобств, например в php при тестировании я всегда выводил массив через print_r($arr), где можно было посмотреть всю его структуру и ключи. Есть ли в Javascript какая-то возможность подобного просмотра массива, хотяб чтоб ключи было видно ?
document.write($arr) очень не удобен и не информативен user posted image



Спустя 7 минут, 59 секунд (8.08.2010 - 14:14) Michael написал(а):
Для отладки:
var aaa = [[1,2,3],'hello' , [4,5,6]];
console.log(aaa);

- поставь в Мозилле FireBug и смотри на вкладке Консоль.

Спустя 5 часов, 56 минут, 18 секунд (8.08.2010 - 20:10) Slays написал(а):
FireBug давно стоит, только вот консолью раньше не пользовался, буду пробовать =)

Спустя 1 день, 17 часов, 44 минуты, 20 секунд (10.08.2010 - 13:54) Slays написал(а):
Следующая проблема:
есть у меня область <span></span> в которую с помощью javascript я загружаю содержимое (в данном случае использую jquery для более удобного обращения к DOM):
$("div.review_struct span").html(div_struct);


и ссылка с функцией, при нажатии на которую переменная div_struct меняется и снова также выводится в span.

Проблема в том, что при нажатии содержимое span не заменяется, а пополняется новым значением переменной. Т.е. вместо

переменная
(нажимаем замену значения)
новая переменная


получается
переменная
(нажимаем замену значения)
переменная
новая переменная


вобщем будто применяется +=innerHTML

Понятно, что javascript напрямую на dom структуру документа не влияет и span остается без дочерних элементов/пустым даже при добавлении туда текста через javascript. В чем проблема и как решить =) user posted image

Спустя 2 минуты, 42 секунды (10.08.2010 - 13:57) sergeiss написал(а):
Цитата (Slays @ 8.08.2010 - 15:06)
буду задавать все наболевшие вопросы в данной теме

Более правильно будет не создавать кашу, а создавать отдельные темы по каждому вопросу. Это полезно и для тебя, и для любого другого человека, который будет "серфить" по форуму.

Спустя 3 минуты, 28 секунд (10.08.2010 - 14:00) ZSH написал(а):
$("div.review_struct span").html('');
$("div.review_struct span").html(div_struct);

попробуй сначала удалить содержимое span

Спустя 8 минут, 6 секунд (10.08.2010 - 14:08) Slays написал(а):
sergeiss
боюсь насоздавать кучу нубских пустяковых тем, отправят только книги читать вместо помощи =) Я конечно сам пытаюсь, но удобней изучать что-то новое с наставниками, либо сообща =) Да и новички форум не серфят, почти все спрашивают одно и тоже )

ZSH
не помогает, ведь span в DOM итак по идее пуст =) Хотя явление того, что у меня происходит, я тоже не понимаю, может где что напутал еще, а может всетаки как-то можно решить.

Спустя 2 минуты, 12 секунд (10.08.2010 - 14:11) linker написал(а):
Цитата
Понятно, что javascript напрямую на dom структуру документа не влияет и span остается без дочерних элементов/пустым даже при добавлении туда текста через javascript.
Это почему ты так решил?

Спустя 1 минута, 42 секунды (10.08.2010 - 14:12) Michael написал(а):
Ты лучше посмотри не само ли значение переменной наращивается? Той которую ты потом используешь: html(переменная).

Спустя 1 минута, 3 секунды (10.08.2010 - 14:13) ZSH написал(а):
Цитата
Понятно, что javascript напрямую на dom структуру документа не влияет


как раз наоборот, просто в исходном коде не видно

Спустя 2 минуты, 48 секунд (10.08.2010 - 14:16) Slays написал(а):
ну как я понимаю DOM формируется при загрузки документа, а дальше мы можем с ним только работать, не меняя.
Ну например если я с помощью javascript добавлю элемент
$(document.body).append('<div id=new_el></div>');

то в дальнейшем к нему же как к элементу DOM обратиться не смогу:
var new_el = $('div#new_el'); - ошибка, нет такова узла


ну и другие операции с созданными в JS элементами с помощью JS не работают.

Спустя 3 минуты, 6 секунд (10.08.2010 - 14:19) ZSH написал(а):
а ты попробуй wink.gif

Спустя 3 минуты (10.08.2010 - 14:22) Michael написал(а):
все работает. Смотри в FireBug на вкладке HTML.
Для наглядности так сделай:
$(document.body).append('<div id=new_el>99</div>');
var new_el = $('div#new_el');
new_el.css('color', 'red');

Спустя 6 минут, 34 секунды (10.08.2010 - 14:29) Slays написал(а):
Позже напишу пример, который не работает, значит это будет следующей проблемой, интересно =)

а в данном случае реально переменная наращивается где-то, тут конечно же пример в разы упращенный ) Пойду в функциях рыться ) user posted image

Спустя 1 минута, 37 секунд (10.08.2010 - 14:30) linker написал(а):
Цитата
ну как я понимаю DOM формируется при загрузки документа, а дальше мы можем с ним только работать, не меняя.

DOM есть всегда и он меняется.

Спустя 2 минуты, 45 секунд (10.08.2010 - 14:33) Slays написал(а):
а есть удобные утилиты, чтобы просматривать текущий DOM после всех изменений ?

Спустя 4 минуты, 57 секунд (10.08.2010 - 14:38) ZSH написал(а):
тот же firebug вкладка html и побежали плюсики раскрывать smile.gif

Спустя 1 час, 9 минут, 26 секунд (10.08.2010 - 15:48) linker написал(а):
Пользуюсь Google Crome, там уже все есть что надо.

Спустя 1 месяц, 1 день, 2 часа, 7 минут, 33 секунды (11.09.2010 - 17:55) Slays написал(а):
еще пару вопросов для уточнения понимания =)

1) можно ли в JS создать массив только с нужными индексами, например

array[3] = "значение";
array[24] = "значение";


или он в любом случае заполнит все неуказанные значения пустыми элементами


2) чтобы создать объект obj.style.param.hz.text и тд, надо всегда указывать портянку типо
obj.style = new Object();
obj.style.param = new Object();
obj.style.param.hz = new Object();

и тд, или можно этого как-то избежать ?

3) с id в виде цифр JS нормально работает ? например id=1, getElementById('1') и тд, ато возникали какие-то проблемы, уже точно не помню, но id пришлось менять на id='id_1', ну чтоб строкой была. Какие подводные камни тут могут быть

user posted image

Спустя 54 минуты, 48 секунд (11.09.2010 - 18:50) linker написал(а):
1) Нет, просто array.length будет отдавать значение 25.
2) Как-то так
obj = {'style':{'param':{'hz':new Array()}}};
3. Имхо просто что-то не так делал.

Спустя 3 минуты, 10 секунд (11.09.2010 - 18:53) Basili4 написал(а):
Если мы говорим DOM подрозумевае дерево то очень даже меняется

insertBefore, removeChild и др. вот тут много про дум написано

http://javascript.ru/tutorial/dom/modify#dobavlenie-v-dom

Спустя 1 час, 53 минуты, 25 секунд (11.09.2010 - 20:47) Slays написал(а):
Basili4 со старыми проблемами я разобрался, да, был не прав =)

linker
насчет 1 вопроса, если я через цикл начну все значения такова массива прогонять, например через for in, цикл пойдет только по 2 заданным значениям или с 0 до 24 ? Вроде второй вариант.

Спустя 13 часов, 27 минут, 9 секунд (12.09.2010 - 10:14) Michael написал(а):
массивы - это которые:
x = []
или
x = new Array()
для них идет дополнение и перебираются они от 0 до x.length.
А ассоциативные массивы имитируются объектами:
a= {};
a[5] ='444'
- для них нет никаких автодополнений и for in только нужное выберет

Спустя 9 минут, 50 секунд (12.09.2010 - 10:24) DedMorozzz написал(а):
Цитата (Slays @ 10.08.2010 - 13:33)
а есть удобные утилиты, чтобы просматривать текущий DOM после всех изменений ?

FF - DOM inspector. Как-то так называется. Или, как уже сказали - огнежук.

Спустя 15 минут, 51 секунда (12.09.2010 - 10:39) Basili4 написал(а):
DedMorozzz
в IE есть причем более удобный для меня чем скажем в Опере

Спустя 1 день, 7 часов, 37 минут, 12 секунд (13.09.2010 - 18:17) Slays написал(а):
прояснить, если функции друг за другом идут, они работают параллельно или каждая ждет полного выполнения предыдущей ?

func1();
func2();
func3();


Спустя 3 часа, 35 минут, 8 секунд (13.09.2010 - 21:52) linker написал(а):
JavaScript - это интерпретируемый язык, поэтому все выполняется последовательно, плюс по мере загрузки документа.

Спустя 9 дней, 14 часов, 9 минут, 4 секунды (23.09.2010 - 12:01) Slays написал(а):
можно отправить форму без нажатия клавиши submit ?

событие onsubmit срабатывает вроде именно после нажатия клавиши, а нужно отправить без нажатия. И из той же серии, как кликнуть на кнопку, не кликая на кнопку, т.е. программно =)
user posted image

Спустя 2 минуты, 35 секунд (23.09.2010 - 12:03) ZSH написал(а):
document.forms.неймформы.submit();

Спустя 3 дня, 4 часа, 24 минуты, 9 секунд (26.09.2010 - 16:27) Slays написал(а):
Кто-нибудь знает, есть ли в сети максимально полная документация на русском по редактору TinyMCE, как здесь
http://wiki.moxiecode.com/index.php/TinyMCE:Index
или описание его API на русском.

чтобы показывались все возможности настройки, тонкости, трюки, хочется поглубже в нем разобраться.


_____________
если помог, не скупись на карму =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.