javascript - 无法在 JQuery 中设置变量的 HTML

标签 javascript jquery html

我所做的是从文件中加载一些 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/

相关文章:

javascript - 在 url 中使用文章标题,而不是 id

javascript - 需要将 <audio> 的音量设置为零,或者只是想将其静音(对于移动 android chrome 和 ios 的 safari)

javascript - 从 google chrome 浏览器控制台在 Netflix 上设置视频播放速率

javascript - JQuery 将 UL 附加到另一个 DIV

javascript - 在div外点击,隐藏div

javascript - 单击滚动更多数据

html - 是否可以通过浏览器开发工具查看浏览器正在使用哪个 srcset 图像

javascript - 通过单击将 float div 添加到表格行

javascript - 在android中的本地Html文件中加载Meteor.js

javascript - Jquery Sortable后如何更新多个td的Id