Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 27.10.2010, 09:36   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
ОСЕЛ!!! Господа, прошу помощи...

Как то я все писал сайт под оперу, не задумываясь, черт возьми, о существовании Осла, и о его неправильном представлении о коде...
В общем, такая бага:
Пишу в JS - функции:
label = $("#filelabel")[0]
Ругается, говорит что "Предполагается наличие объекта"
Пробовал так:
label=document.getElementById("filelabel") - то же самое.
Пробовал даже так(!) :
label = document.all.filelabel[0] - хрена с два, label==undefined
Пробовал по массиву document.all.filelabel пробежаться , везде null && undefined
Вот сам виновник глюков:
echo("
<table>
       <tr><td>Метка для поиска:</td><td><input name=\"filelabel\" type=text id=filelabel size=40></td></tr>
       <tr><td>Путь к файлу:</td><td><input name=\"filepath\" type=file id=filepath size=40></td></tr>
       </table>");


PS: вчера до ночи гуглил, нигде ничего нет, или document.all всех спасает, а у меня нет
PSPS: Кавычки "" для id не помогают, посему убраны
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 12:15   #2
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Итак, по порядку:
1. Значения атрибутов ВСЕГДА берутся в кавычки, такого говна - type=text - быть не должно. Должно быть type="text" и т.д.
2. Чтобы не ставить экраны перед двойными кавычками, возьми свой html внутри echo в одинарные
3. $("#filelabel")[0] - это что вообще? Доступ через $() будет работать только с подключённой jQuery или Prototype. ЭТО НЕ МАССИВ! Ты пытаешься забрать объект по ID, более одного объекта с таким ID быть не может! Потому просто $("#filelabel")
4. document.getElementById("filelabel") - это должно работать.

Теперь вопрос:
Ты часом не пытаешься получить объект ДО его создания?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (27.10.2010)
Старый 27.10.2010, 13:45   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

ЭТО НЕ МАССИВ!
Ну вообще $("#filelabel")[0] на джиквери возвратит элемент DOM. (как альтернатива .get(0))
И да, автор, дай уже ссылку на сайт непосредственно, эмулировать DOM и JS в мозгу довольно сложно.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 19:12   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

$("#filelabel") - ты используешь "#" - значит пытаешься получить объект по ID.
getElementById - функция получает эллемент по ID.

А у тебя <input> имеет Name, а не ID.
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 19:37   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

У него id такой же (только он кавычки убрал зачем-то)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 19:41   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от ABTOMAT Посмотреть сообщение
У него id такой же (только он кавычки убрал зачем-то)
А точн, поэтому и не заметил
И чё это: \" ?
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 20:00   #7
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от MoKa Посмотреть сообщение
А точн, поэтому и не заметил
И чё это: \" ?
Он привел кусок РНР кода, в котором он html зачем-то через echo выводит.
__________________

(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 20:00   #8
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от MoKa Посмотреть сообщение
И чё это: \" ?
Экранирование
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 20:06   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

А, угу, вижу, спасиб.
ЗЫ, всегда использую одинарную ковычку в php и двойную в html'е =)
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 20:54   #10
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от MoKa Посмотреть сообщение
А, угу, вижу, спасиб.
ЗЫ, всегда использую одинарную ковычку в php и двойную в html'е =)
Двойные удобны тем, что можно переменные указывать прямо в строке. С одинарными приходится использовать конкатенацию строк.
__________________

(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 20:58   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от .Squid Посмотреть сообщение
Двойные удобны тем, что можно переменные указывать прямо в строке. С одинарными приходится использовать конкатенацию строк.
Этого тоже не знал, но всегда использовал намеренно конкатенацию строк т.к. это в разы улучшает читабельность логики, нежели использование переменных в самих строках.
ЗЫ, у меня NetBeans не подсвечивает "встрочные" переменные...
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 21:46   #12
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Товарищи, Жыквери подключена, уж я не дурак.
$("#id") - возвражает МАССИВ, в нем запиханы ВСЕ найденные эдементы по id="id"
И дело, по - моему, не в двойных кавычках (ибо пробовал с ними и без них), а в том что JS не находит именно на осле элемент по ID. Надо бы поискать что-нить, да вот инет упал последнее время выше 1 КБ\с не поднимается
(Offline)
 
Ответить с цитированием
Старый 27.10.2010, 21:50   #13
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

А вот и не массив, а объект. Впрочем, он так сделан, что к нему можно обращаться в том числе и как к массиву.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 28.10.2010, 00:01   #14
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от Павел Посмотреть сообщение
$("#id") - возвражает МАССИВ, в нем запиханы ВСЕ найденные эдементы по id="id"
Был бы верующим, перекрестился бы. Если ты сделаешь БОЛЬШЕ ОДНОГО элемента с ОДИНАКОВЫМ id - это будет баг и ты никогда не вытянешь все элементы с таким id. Точно не помню, но либо первый, либо последний по порядку их инициализации. Это name, class и прочие могут сколько угодно повторяться.
Дай ссыль на код. Так не разгребём.
(Offline)
 
Ответить с цитированием
Старый 28.10.2010, 13:54   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ОСЕЛ!!! Господа, прошу помощи...

Сообщение от Павел Посмотреть сообщение
Товарищи, Жыквери подключена, уж я не дурак.
$("#id") - возвражает МАССИВ, в нем запиханы ВСЕ найденные эдементы по id="id"
И дело, по - моему, не в двойных кавычках (ибо пробовал с ними и без них), а в том что JS не находит именно на осле элемент по ID. Надо бы поискать что-нить, да вот инет упал последнее время выше 1 КБ\с не поднимается
Дык, ты поправил свой хмтл код??? Или нет?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:00.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com