更改动态创建的元素

时间:2014-01-10 14:19:34

标签: javascript jquery safari-extension

我正在构建自动更改元素的浏览器插件(safari扩展)(通过“prepend”)。 它可以通过调用prepend来完成:

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

但是,如何更改使用javascript动态创建的元素?

4 个答案:

答案 0 :(得分:1)

您可以先创建对象:

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

答案 1 :(得分:1)

你可以听DOM更改:

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

而不是弄清楚发生了什么变化。但是你的问题并不清楚你想做什么。

答案 2 :(得分:0)

您可以将您创建的对象存储在全局变量中,以便在整个网页中都可用...就像这样:

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

然后在其他一些功能或某事......

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

答案 3 :(得分:-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(){

 });