Javascript 更改动态创建的元素
我正在构建浏览器插件(safari扩展),可以自动更改元素(通过“prepend”)。 可以通过调用prepend来完成,如: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
$(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
});