我所做的是从文件中加载一些 HTML,然后我试图修改该 HTML 中的一些元素。
初始化看起来像这样:
var id = player_info["ID"];
$("#main_container").append(
$("<div />").attr({class: "player_container", id: "player_" + id}).css("display", "none")
);
// Add all information to the player container
var player_container = $("#player_" + id);
player_container.load("player_layout.html");
player_layout.html
看起来像这样:
<div class="player_name">
</div>
<div class="player_chips">
Chips:
<br/>
<span class='bidding'></span>/<span class='chips'></span>
</div>
<div class="player_stats">
Wins / Losses
<br/>
<span class="wins"></span>/<span class="losses"></span>(<span class="total_games"></span>)
<br/><br/>
Chips Won / Chips Lost
<br/>
<span class="chips_won"></span>/<span class="chips_lost"></span>
</div>
<button class="player_won">Player Has Won</button>
然后我想修改一些元素,特别是类。我最初这样做的一个例子是:
player_container.find(".player_name").text(player_info['username']);
这没有用,所以我尝试用 children
切换 find
,用 html
切换 text
但是那似乎没有用。然后我尝试了这个:
$('> .player_name', player_container).html(player_info['username']);
但这也没有用。我知道我可以使用 DOM 获取 childNodes
并比较类名,但是有很多类需要修改,我还想知道这在 JQuery 中是否可行。在此先感谢您的帮助。
最佳答案
需要使用.load()
的完整回调方法
var player_container = $("#player_" + id);
player_container.load("player_layout.html", function(){
player_container.find(".player_name").text(player_info['username']);
});
关于javascript - 无法在 JQuery 中设置变量的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393723/