2016-12-09 31 views
5

我想通过这个功能来改变内部HTML中加载DIV:jQuery和load()。无法更改内部HTML中加载类

$("#container").load("site.php");

site.php我有<div class="users_count">,我希望把一些文字里面。我试图使用$(".users_count").html("TEST"),但它不能做,因为jQuery没有看到.users_count类。

我heared关于jQuery的on()live()但它需要像click, keyup etc...

我需要把这个div一些文本没有任何事件的一些事件 - 只是做了我的功能,无需用户操作。

+2

请在这里发布您的完整代码 – Blueblazer172

+1

下一次请在搜索这样一个基本问题之前进行搜索。类似的问题已经被多次提出,我们不需要更多的重复问题。 –

回答

10

$.fn.load()是异步,你可以使用complete回调:

$("#container").load("site.php", function(){ 
    $(this).find('.users_count').html('TEST'); 
}); 

$(this).find('.users_count')只是$('.users_count'),因为它是最好设置相关的情境,你不希望在大多数情况下,目标元素不传人加载内容isntead ,根据selector使用。在你的情况下,它会改变什么,但有时候谁知道...

+1

类似的问题已经被问过很多次了(你可以通过搜索“jquery access loaded element”找到一些问题)。不要回答它,你应该找到一个好的重复目标并关闭这个问题。 –

+0

@Gothdo当然可以,但是例如您提出的副本没有明确地解决关于锁定加载内容的问题,只有它。但肯定会找到更好的欺骗。 –

13

你可以使用的load()完整的回调:

如果提供一个“完整”的回调,这是后后执行处理和HTML插入已经执行。

$("#container").load("site.php", function() { 
    $(".users_count").html("TEST") 
}); 

希望这有助于。

+2

类似的问题已经被问过很多次了(你可以通过搜索“jquery access loaded element”找到一些问题)。不要回答它,你应该找到一个好的重复目标并关闭这个问题。 –

8

您想在加载完成时执行某些操作。这是在完整的回调中完成的。

$("#result").load("ajax/test.html", function() { 
    alert("Load was performed."); 
    // Do your stuff here 
}); 
-1

我有另一种解决方案是不要live()从jQuery的需要on()

当我做example.php$("#container").load("example.php");</body>前右我把<script type ="text/javascript" src="myFunctions.js"></script>其中包含我所有的功能我想在使用example.php我的类使用。

现在我的jQuery函数没有找到类或id的问题,因为它们加载了我的example.php

+0

JavaScript是高度异步的。越早理解这个概念,你越早离开_hacks_这样。 –

相关问题