Изменить динамически созданный элемент

0

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

$(document).ready(function(){
  $("a").prepend("<img ...>").
})

Но как я могу изменить элементы, созданные динамически с помощью javascript?

  • 0
    dynamically вы можете объяснить, пожалуйста, об этом.
  • 0
    Вы можете хранить элемент DOM в локальной переменной. Затем вы можете использовать его как любой другой объект JavaScript.
Показать ещё 3 комментария
Теги:
safari-extension

4 ответа

1

Вы можете создать 1-й объект:

$(document).ready(function(){
    var img = $("<img ...>");
    $("a").prepend(img);
    // do something with img
});
  • 0
    Это не мой вопрос, но спасибо за ваш комментарий. Я обновил вопрос.
  • 0
    Это такой странный ответ. Я не вижу никакого реального ответа, но код из вопроса!
Показать ещё 5 комментариев
1

Вы можете прослушать изменение DOM:

$("body").on("DOMSubtreeModified", function(){
    alert('DOM changed');
});

И чем выяснить, что изменилось. Но из вашего вопроса неясно, что вы хотели бы сделать.

0

Вы можете сохранить созданный объект в глобальной переменной, чтобы он был доступен на всей вашей веб-странице... Так же:

var img;
$(document).ready(function(){
    img = $("<img ...>");
    $("a").prepend(img).
});

Затем позже в какой-то другой функции или что-то еще...

$(img).click(function() { 
     // blah
});
-1

Вы можете создать триггер,

    $(document).ready(function(){
      $("a").prepend("<img id="imgId"...>").
        $(document).trigger('asd');
    })
$(document).on('asd', function() {

  });

Или вы можете создать список событий

$(document).ready(function(){
          $("a").prepend("<img id="imgId"...>").

})
$(document).on('click','imgId',function(){

 });
  • 0
    Извините, но "щелчок" или другое событие вызывается только тогда, когда на него "нажимают", а не когда оно создается ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню