我想在加载一个html元素后在javascript中执行一些代码。 html元素是由javascript代码动态生成的。
当我尝试访问我想访问的元素时,我得到了未定义。我在$(document).ready event
中访问它 像这样 alert($("#imgP").attr("src"));
$("#imgP").removeAttr("src");
$("#imgP").attr("src", "../../../../images/p.png");
我怎么能等到元素完全加载所以我可以访问它,是否有我使用的jquery事件?
答案 0 :(得分:0)
如果存在多个具有相同名称的对象,则jquery只对第一个对象进行操作。所以总是给出上下文,这将告诉jquery只找到特定div中的对象。如果找不到任何对象,jquery将不会告诉您或提醒您仍然使用其属性或值。
因此请使用$("#imgP") to $("impP", $("#yourparentdiv"))
替换,或者您可以使用$(#imgP)[0]
进行检查(这是不好的习惯,只是为了理解)。
您可以在警告或$("#impP").length
中的对象计数之前通过调试器进行检查。
http://api.jquery.com/jquery.each/
您可以通过
查看.each$("#impP").each(function( key, value ) {
alert( key + ": " + value );
});
答案 1 :(得分:0)
试试这个:
$('body').on("load", "#imgP", function() {
alert($("#imgP").attr("src"));
$("#imgP").removeAttr("src");
$("#imgP").attr("src", "../../../../images/p.png");
});
答案 2 :(得分:0)
你在html元素中试过onload函数吗?
前:
<img onload="function()"/>
答案 3 :(得分:0)
始终检查方法调用的顺序。我试图在创建元素之前尝试访问它。问题解决了。希望有人会觉得有用