gpt4 book ai didi

javascript - 当我加载 .xml 文件时,它的内容有时会出现在我的网页上,但当我刷新时,它就会消失。 (javascript、jquery、ajax、xml)

转载 作者:行者123 更新时间:2023-12-03 06:25:13 25 4
gpt4 key购买 nike

在此项目中,我正在为 contact.js 文件创建一个 contact.html 文件,该文件将从 listings.html 文件中提取数据,并将其全部内容附加到 aboutUs 页面中的 div contact.html 中。我编写了一个函数,使 listings.html 文件中的内容出现在 contact.html 文件中。

此外,在 contact.js 文件中,我编写了一个函数,它将把 realtors.xml 文件的所有内容附加到 listings.html 页面的 aboutUs div 中的 contact.html 文件内容的正下方。我的功能有效,但有时当我加载 contact.html 网页时,它会显示 realtors.xml 文件的内容,但其他时候则不会出现。另一方面,当我加载 listings.html 文件的内容时,它的内容总是出现在我的网页上。有时我必须刷新网页两三次才能显示 realtors.xml 文件的内容,而有时,连续刷新网页 5 次后 realtors.xml 文件的内容仍然出现。我希望每次加载网页时 realtors.xml 文件的内容始终出现在我的网页上,但有时会出现这种情况。

我在这里做错了什么?

我正在使用一个 contact.html 文件、一个 contact.js 文件、一个 realtors.xml 文件和一个 listings.html 文件(以及一个 jquery 文件 ( https://code.jquery.com/jquery-3.1.0.min.js ))。

我的 contact.html 文件是这样的:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Real Estate Sold</title>
<link rel="stylesheet" type="text/css" href="listing.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="contact.js"></script>
</head>
<body>
<nav class="main-navigation" role="navigation">
<div>
<ul id="menu-main-menu" class="nav-menu">
<li><a href="index.html">Home</a></li>
<li><a href="index.html">Regional Info</a></li>
<li><a href="index.html">Current Listings</a></li>
<li><a href="#">Sold</a></li>
<li><a href="index.html">About Us</a></li>
</ul>
</div>
</nav>
<div id="aboutUs"></div>
</body>
</html>

我的 contact.js 文件是这样的:

 $("document").ready(function() {
getData();
getXMLData();
});

function getData() {
$("#aboutUs").load("listings.html");
}

function getXMLData() {
$.get("realtors.xml", function(result) {
var phone = result.getElementsByTagName("phone")[0];
var name = result.getElementsByTagName("name")[0];
var realtor = name.firstChild.nodeValue + " : " + phone.firstChild.nodeValue;
var phone1 = result.getElementsByTagName("phone")[1];
var name1 = result.getElementsByTagName("name")[1];
var para = document.createElement("P");
var t = document.createTextNode(realtor1);
var realtor1 = name1.firstChild.nodeValue + " : " + phone1.firstChild.nodeValue;
$("#aboutUs").append(realtor);
$("#aboutUs").append(para).append(realtor1);
});
}

我的 listings.html 文件是这样的:

<h2>About Us</h2>
<p> Wright Realty is a family owned real estate brokerage specializing in custom homes since 1852.
We appreciate that our customers demand quality that endures for generations, so we only
list with homeowners who have maticulously maintained their unique and timeless homes.
</p>
<h3>Our Realtors:</h3>
<ul></ul>

我的 realtors.xml 文件是这样的:

<data>
<name>Frank Lloyd</name>
<phone>555-123-4567</phone>
<name>Lloyd Wright</name>
<phone>555-123-8910</phone>
</data>

最佳答案

我认为问题在于 realtors.xml 的(异步)处理可能发生在 listings.html 加载之前,并且可能会被它覆盖。

您必须:

  • listings.html 加载完成后调用 getXMLData(),将其作为 complete 回调提供(请参阅 http://api.jquery.com/load/ ), 或
  • 创建两个不同的 div 来放置内容,这样首先加载的内容并不重要。

第一种方法如下所示:

  $("document").ready(function() {
getData();
});

function getData() {
$("#aboutUs").load("listings.html", getXMLData);
}

关于javascript - 当我加载 .xml 文件时,它的内容有时会出现在我的网页上,但当我刷新时,它就会消失。 (javascript、jquery、ajax、xml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com