当我尝试使用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>");
});
});
});
`
答案 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>");
});
});
一种更简单的方法是将id
传递给url,并通过解析url来获取id
$("#games").on("click", ".editeaza", function() {
window.open("edit.html?item_id=" + $(this).parent().attr('id'));
})