Сохранить ссылку на элемент после вставки в DOM - PullRequest
0 голосов
/ 28 мая 2009

Я традиционно использовал JavaScript как «UI Glue», и (к сожалению) был одним из тех, кто рассматривал JS как «игрушку». Однако я изменил курс и нашел некоторую реальную мощь в его использовании - особенно в сочетании с JSON / jQuery.

Мой вопрос касается динамического создания элементов, а затем добавления их в DOM. Кажется, что когда это происходит, к DOM добавляется только копия объекта, и я теряю ссылку на него. Например, если я создаю глобальный объект с помощью createElement (скажем, «a»), задаю несколько атрибутов («href», «title» и т. Д.), А затем добавляю его в DOM, любую исходную ссылку на мой глобальный объект не влияет на добавленный элемент. Я уверен, что смог найти объект, который только что вставил, но это похоже на большую работу, чем следовало бы. Я что-то упустил?

Ответы [ 4 ]

0 голосов
/ 15 июня 2009

Все объекты передаются по ссылке в JavaScript, и HTML-узлы не являются исключением. Ваша исходная ссылка всегда должна работать, пока вы не назначите ей другое значение. Похоже, у вас есть проблема с областью. Можем ли мы увидеть код?

0 голосов
/ 28 мая 2009

Ваша оригинальная, глобальная ссылка все равно должна работать нормально. Что ты пытаешься с этим сделать? У вас есть пример кода?

0 голосов
/ 28 мая 2009

Используете ли вы библиотеку или что-то, что оборачивает собственный объект DOM? Это может быть проблемой ...

0 голосов
/ 28 мая 2009
var new_div = document.createElement('div');
new_div.id = 'foo';

РЕДАКТИРОВАТЬ: Просто перечитайте свой вопрос, вы говорите, new_div не работает после appendChild? Я уверен, что так и должно быть. Вы не добавляете это через innerHTML или что-то странное в этом роде?

Возможно, ваш вар выходит из области видимости, где вы пытаетесь его прочитать. (т.е. вы создаете это в одной функции и читаете это из другой?). Попробуйте объявить объект глобально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...