使用jquery加载后访问html元素

时间:2015-01-20 06:46:12

标签: javascript jquery html

我想在加载一个html元素后在javascript中执行一些代码。 html元素是由javascript代码动态生成的。

当我尝试访问我想访问的元素时,我得到了未定义。我在$(document).ready event

中访问它 像这样

  alert($("#imgP").attr("src"));
    $("#imgP").removeAttr("src");

    $("#imgP").attr("src", "../../../../images/p.png");

我怎么能等到元素完全加载所以我可以访问它,是否有我使用的jquery事件?

4 个答案:

答案 0 :(得分:0)

如果存在多个具有相同名称的对象,则jquery只对第一个对象进行操作。所以总是给出上下文,这将告诉jquery只找到特定div中的对象。如果找不到任何对象,jquery将不会告诉您或提醒您仍然使用其属性或值。

因此请使用$("#imgP") to $("impP", $("#yourparentdiv"))替换,或者您可以使用$(#imgP)[0]进行检查(这是不好的习惯,只是为了理解)。

您可以在警告或$("#impP").length中的对象计数之前通过调试器进行检查。

http://api.jquery.com/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)

始终检查方法调用的顺序。我试图在创建元素之前尝试访问它。问题解决了。希望有人会觉得有用