Как изменить объект с помощью Jquery, который был сгенерирован динамически Javascript? - PullRequest
0 голосов
/ 02 мая 2018

Я хочу добавить текст к объекту, который был создан поиском Algolia в браузере. Это кусок, который был создан Algolia:

<div id="editing-view-port">
    <div></div>
</div>

Я хочу вставить строку во внутренний div. Вот что я попробовал:

$(document).find('#editing-view-port > div').append(e.results[0][0].transcript);

Где e.results [0] [0] .transcript - моя строка. Я могу добавить это к объекту, который НЕ был создан поиском Алголии. Я подозреваю, что это как-то связано с делегированием или привязкой событий, но я не уверен, как этого добиться?

ОБНОВЛЕНИЕ ДЛЯ ЯСНОСТИ:

Так я тестировал объект, созданный Алголией, и объект, созданный мной ...

Мой JS:

$(document).find('#editing-view-port > div').append(e.results[0][0].transcript); // this is an Algolia object
$(document).find('#my-object > div').append(e.results[0][0].transcript); // this is an object created by me

Строка "test"

Результирующий HTML:

<div id="editing-view-port">
    <div></div>
</div>

<div id="my-object">
    <div>test</div>
</div>

Возможно, стоит отметить, что когда я проверяю динамически сгенерированный раздел в Chrome, он оборачивает раздел:

#shadow-root (user-agent) == $0

1 Ответ

0 голосов
/ 02 мая 2018

Похоже, ваша проблема в том, что элемент не существует в момент выполнения сценария вставки. Когда вы проверяете HTML с вашим инспектором браузеров, элемент там. Таким образом, элемент был создан где-то между. То, что вам нужно, это знать, когда он вставляется и после этого вставьте ваш текст. Если вы не можете точно получить эту точку, вы должны попытаться обнаружить ее. Подробности и возможные решения смотрите в: Как я могу определить, когда новый элемент был добавлен в документ в jquery?

Изменить: пожалуйста, укажите в комментарии, что должно быть adabted, если вы понижаете голос. Thx.

...