2016-12-09 35 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_這樣。 –

相關問題