jQuery不会将()追加到新打开的标签页

时间:2018-12-24 13:30:23

标签: jquery

当我尝试使用append()方法将html插入通过单击主页上的按钮打开的新标签页时,我遇到了问题。我已经在网上搜索了答案,但没有发现有关我的问题的任何信息。我发现的唯一建议是说使用html()而不是append(),但这也不起作用。这是我代码中与问题有关的部分。您可以忽略ajax调用和变量部分,因为从调试中可以看到它起作用。 #games在我的主页上,#editGames是我要在第二页上附加()的部分。谢谢!

`

$("#games").on("click", ".editeaza", function() {
    window.open("edit.html");
        $(document).ready(function() {
          $.ajax({
          url:
          "https://games-world.herokuapp.com/games/" +
          $(this)
            .parent()
            .attr("id"),
        method: "GET"
      }).then(function(game) {
        var id = game._id;
        var title = game.title;
        var releaseDate = game.releaseDate;
        var genre = game.genre;
        var publisher = game.publisher;
        var image = game.imageUrl;
        var description = game.description;

        $("#editGames").append("<p>I AM DUMB!</p>");
      });
    });
  });

`

1 个答案:

答案 0 :(得分:1)

您需要存储对另一个窗口的引用,并在加载后使用其文档上下文访问其中的元素

尝试

$("#games").on("click", ".editeaza", function() {
  // other window reference
  var otherWindow = window.open("edit.html");
  // let other window load before accessing elements
  $(otherWindow).on('load', function() {
    // document in other window
    var $doc = $(this.document);
    // find() within other document 
    $doc.find("#editGames").append("<p>I AM DUMB!</p>");
  });
});

Plunker demo


一种更简单的方法是将id传递给url,并通过解析url来获取id

$("#games").on("click", ".editeaza", function() {
    window.open("edit.html?item_id=" + $(this).parent().attr('id'));
})