2015-01-20 4 views
1

Я хочу выполнить некоторый код в javascript после загрузки одного элемента html. Элемент html динамически генерируется javascript-кодом.доступ к элементу html после его загрузки с использованием jquery

Когда я пытаюсь получить доступ к элементу, к которому я хочу получить доступ, я получаю undefined. Я к нему доступ в $ (документ) .ready событие

как этот

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

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

Как я могу подождать, пока элемент не будет полностью загружен, так что я могу получить доступ к нему, есть какое-либо событие JQuery я использую?

+0

Можете ли вы разместить весь свой JS-код? – ArinCool

+0

Будет лучше, если вы удалите код из document.ready и поместите его после динамически генерируемых элементов dom. – Innovation

ответ

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); 
}); 
+0

не работает –

+0

просто напишите отладчик выше предупреждения и откройте в ie. предупреждайте, что вы настороже? после предупреждения просто проверьте режим отладки через расширение быстрых часов – Ajay2707

0

Попробуйте это:

$('body').on("load", "#imgP", function() { 
    alert($("#imgP").attr("src")); 
    $("#imgP").removeAttr("src"); 
    $("#imgP").attr("src", "../../../../images/p.png"); 
}); 
+0

это не работает –

+0

Можете ли вы разместить свой код JS, пожалуйста? – ArinCool

0

вы пробовали функцию OnLoad в HTML элемент?

например:

<img onload="function()"/> 
0

Всегда проверяйте последовательность ваших вызовов методов. Я пытался получить доступ к элементу еще до его создания. Проблема решена. Надеюсь, что кому-то это станет полезно

Смежные вопросы