我正在嘗試製作一個小型瀏覽器遊戲,並且無法選擇使用jQuery中的.html()
添加的元素。如何在jQuery中使用.html()添加添加HTML元素
對於遊戲,我使用HTML模板系統,其中模板存儲在templates/%name%.txt
。然後,爲了加載一個模板,我使用下面的函數。
function template(name) {
$.get("templates/" + name + ".txt", function(data) {
$(".content").html(data);
});
}
下面是一個模板的一個例子,我會用:現在
<div class="title">
<!-- FILL -->
</div>
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<button class="in-btn quit">Quit Game</button>
<button class="in-btn reset">Reset Game</button>
,以便在發生某些變化我編輯比賽的冠軍,我會用$(".title").html("Game - <span>Player Data Example</span>");
。
但是,由於模板並非真正屬於頁面上的HTML部分,因此無法使用常規選擇器進行選擇,因此$(".title")
不會返回任何元素。
那麼,如何選擇通過jQuery使用.html()
添加的元素?
已經有一個方式使用.html()
來處理這種情況,例如,<td>
已添加事件:
$(document).on('click', 'td', function(){
// Do something...
});
也許這可以幫助你https://stackoverflow.com/questions/17561243/jquery-selecting-dynamically-created-elements-and-pushing-to-firebase –
「發生某些變化」是什麼意思?如果這些變化發生在元素出現之前,沒有什麼可以改變的? – adeneo
@adeneo,發生了某些變化,例如當轉牌從玩家一轉變爲玩家二時。元素在這些變化發生之前就存在。 – mathhulk