Javascript 更改动态创建的元素

Javascript 更改动态创建的元素,javascript,jquery,safari-extension,Javascript,Jquery,Safari Extension,我正在构建浏览器插件(safari扩展),可以自动更改元素(通过“prepend”)。 可以通过调用prepend来完成,如: $(document).ready(function(){ $("a").prepend("<img ...>"). }) $(文档).ready(函数(){ $(“a”)。前缀(“”)。 }) 但是,如何更改使用javascript动态创建的元素?您可以首先创建对象: $(document).ready(function(){ var im

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

$(document).ready(function(){
  $("a").prepend("<img ...>").
})
$(文档).ready(函数(){
$(“a”)。前缀(“”)。
})

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

您可以首先创建对象:

$(document).ready(function(){
    var img = $("<img ...>");
    $("a").prepend(img);
    // do something with img
});
$(文档).ready(函数(){
var img=$(“”);
$(“a”)。预付款(img);
//用img做点什么
});

您可以创建触发器

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

  });
$(文档).ready(函数(){
$(“a”)。前缀(“”)。
$(document.trigger('asd');
})
$(document).on('asd',function(){
});
也可以创建事件列表器

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

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

 });
$(文档).ready(函数(){
$(“a”)。前缀(“”)。
})
$(文档)。在('click','imgId',函数()上{
});

您可以监听DOM更改:

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

然后找出发生了什么变化。但是你的问题并不清楚你想做什么。

你可以将你创建的对象存储在一个全局变量中,这样它就可以在你的整个网页中使用。。。像这样:

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

动态地
您可以解释一下吗。您可以将DOM元素存储在局部变量中。然后,您可以将其用作任何其他JavaScript对象。@Jai“动态”表示,例如,由ajax回调创建的元素或html部分。因此,我猜您希望您的扩展“侦听”正在创建的元素(在非您的网站上)?@putvande是的,没错!这不是我的问题,但谢谢你的评论。我更新了问题。这是一个很奇怪的答案。我看不到任何实际的答案,但问题的代码!我可能会不假思索地评价你。很抱歉。除非您再次编辑答案(可能添加一点“更新:OP复制了我的答案!”)或删除您的答案,否则我无法删除我的“否决票”。很抱歉,只有在“单击”时才调用“单击”或其他事件,而不是在创建时调用它。。。
$(img).click(function() { 
     // blah
});