我正在動態創建對象。我想知道如何訪問它?其中一些對象需要通過其他方式隱藏,而不是點擊(以編程方式,點擊按鈕,鏈接等)。所以我不認爲我可以使用。我將如何去訪問這些來隱藏它們?如何訪問動態創建的對象
$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');
});
$('#testdiv').hide();
我正在動態創建對象。我想知道如何訪問它?其中一些對象需要通過其他方式隱藏,而不是點擊(以編程方式,點擊按鈕,鏈接等)。所以我不認爲我可以使用。我將如何去訪問這些來隱藏它們?如何訪問動態創建的對象
$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');
});
$('#testdiv').hide();
你扭轉了你的邏輯。取而代之的.append()
,你應該使用.appendTo()
var myRef = $("<div id=\"testdiv\">Test DIV</div>").appendTo(document.body);
這樣一來,你可以保持一個引用到新創建的DOM節點/jQuery對象。
myRef.hide();
這總是更好到緩存參考存儲到一個變量,這樣你就可以訪問由純ECMA土地一個節點,可以這麼說。 重新查詢對於DOM節點的需求,效率低得多。
請注意一個詞:變量var
聲明的變量只有自己的函數範圍。這意味着如果你想從準備好的處理程序的「外部」訪問該引用,你需要在父上下文中聲明該變量。
你有什麼應該已經工作,除非你需要移動$('#testdiv').hide();
文檔準備(這樣你就不會調用它在創建元素之前)內。
其他答案是一個更乾淨的方式來做到這一點,以及我會做到這一點。
......或者只是在'appendTo()'之後鏈接'hide()'。 – ErikE
或許應該澄清一下,myRef.hide()不能在doc之外,就像op目前有'$(「#testdiv」)。hide()' – Esailija
@Esailija:我不認爲這是在範圍之內這個答案(JavaScript非常基礎)。我不知道OP的應用程序結構,命名空間等。 – jAndy