Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何替换”;取回;加上;ajax";javascript中的方法?_Javascript_Jquery_Html_Ajax_Api - Fatal编程技术网

“如何替换”;取回;加上;ajax";javascript中的方法?

“如何替换”;取回;加上;ajax";javascript中的方法?,javascript,jquery,html,ajax,api,Javascript,Jquery,Html,Ajax,Api,现在,我正试图将注意力集中在ajax上,因为它使用fetch来检索数据。 语法大致相同,但很好奇它会是什么样子 如果任何人有任何想法或知道一个100%有效的解决方案,请随时分享。不知道该怎么办。编辑:这个答案错了还是怎么了??不知道为什么会有人投反对票??嘘 fetch和$。ajax是到同一目的地的不同路由。他们两人的行为都像 我建议坚持使用fetch,因为默认情况下广泛支持,比XMLHttpRequest更易于使用,并且不需要任何第三方库。要使用$.ajax,就我所知,您必须导入jQuer

现在,我正试图将注意力集中在ajax上,因为它使用fetch来检索数据。 语法大致相同,但很好奇它会是什么样子


如果任何人有任何想法或知道一个100%有效的解决方案,请随时分享。不知道该怎么办。

编辑:这个答案错了还是怎么了??不知道为什么会有人投反对票??嘘

fetch
$。ajax
是到同一目的地的不同路由。他们两人的行为都像

我建议坚持使用
fetch
,因为默认情况下广泛支持,比
XMLHttpRequest
更易于使用,并且不需要任何第三方库。要使用
$.ajax
,就我所知,您必须导入
jQuery
——这会导入大量不必要的代码以及
$.ajax
。如果您可以在没有第三方库的情况下完成任务,那么您应该

话虽如此,使用
$.ajax
看起来是这样的:

特定功能:

演示:

let appId=“b1e22f9b3891a9a6fc389e3e1a4cc496”;
让单位=“帝国”;
让搜索方法;
函数getSearchMethod(searchTerm){
if(searchTerm.length==5&&Number.parseInt(searchTerm)+==searchTerm)
searchMethod=“zip”;
else searchMethod=“q”;
}
函数searchWeather(searchTerm){
getSearchMethod(searchTerm);
$.ajax({
网址:`https://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${APPID}&units=${units}`,
成功:(数据)=>{
init(数据);
},
失败:(错误)=>{
log(“ERROR!”,err);
}
})
/*
取回(`https://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${APPID}&units=${units}`)
。然后(结果=>{
返回result.json();
})
。然后(res=>{
init(res);
});
*/
}
函数init(resultFromServer){
开关(resultFromServer.weather[0].main){
案例“明确”:
document.body.style.backgroundImage=“url('clear.jpg')”;
打破
案例“云”:
document.body.style.backgroundImage=“url('cloudy.jpg')”;
打破
“雨”一案:
案例“细雨”:
案例“雾”:
document.body.style.backgroundImage=“url('rain.jpg')”;
打破
“雷暴”一案:
document.body.style.backgroundImage=“url('storm.jpg')”;
打破
案例“雪”:
document.body.style.backgroundImage=“url('snow.jpg')”;
打破
违约:
打破
}
让weatherDescriptionHeader=document.getElementById(
“weatherDescriptionHeader”
);
让temperatureElement=document.getElementById(“温度”);
让humidityElement=document.getElementById(“湿度”);
让windSpeedElement=document.getElementById(“windSpeed”);
让cityHeader=document.getElementById(“cityHeader”);
让weatherIcon=document.getElementById(“documenticoning”);
weatherIcon.src=
"http://openweathermap.org/img/w/" +
resultFromServer.weather[0]。图标+
“.png”;
让resultDescription=resultFromServer.weather[0]。说明;
weatherDescriptionHeader.innerText=
resultDescription.charAt(0.toUpperCase()+resultDescription.slice(1);
temperatureElement.innerHTML=
Math.floor(resultFromServer.main.temp)+“°;”;
windSpeedElement.innerHTML=
“风速”+数学楼层(来自服务器的结果、风速)+“m/s”;
cityHeader.innerHTML=resultFromServer.name;
humidityElement.innerHTML=
“+resultFromServer.main.湿度+“%”下的湿度水平;
setPositionForWeatherInfo();
}
函数setPositionForWeatherInfo(){
设weatherContainer=document.getElementById(“weatherContainer”);
设weatherContainerHeight=weatherContainer.clientHeight;
设weatherContainerWidth=weatherContainer.clientWidth;
weatherContainer.style.left=`calc(50%-${weatherContainerWidth/2}px)`;
weatherContainer.style.top=`calc(50%-${weatherContainerHeight/1.3}px)`;
weatherContainer.style.visibility=“可见”;
}
document.getElementById(“searchBtn”).addEventListener(“单击”,()=>{
让searchTerm=document.getElementById(“searchInput”).value;
if(searchTerm)searchWeather(searchTerm);
});

搜索
编辑:这个答案错了还是怎么了??不知道为什么会有人投反对票??嘘

fetch
$。ajax
是到同一目的地的不同路由。他们两人的行为都像

我建议坚持使用
fetch
,因为默认情况下广泛支持,比
XMLHttpRequest
更易于使用,并且不需要任何第三方库。要使用
$.ajax
,就我所知,您必须导入
jQuery
——这会导入大量不必要的代码以及
$.ajax
。如果您可以在没有第三方库的情况下完成任务,那么您应该

话虽如此,使用
$.ajax
看起来是这样的:

特定功能:

演示:

let appId=“b1e22f9b3891a9a6fc389e3e1a4cc496”;
让单位=“帝国”;
让搜索方法;
函数getSearchMethod(searchTerm){
if(searchTerm.length==5&&Number.parseInt(searchTerm)+==searchTerm)
searchMethod=“zip”;
else searchMethod=“q”;
}
函数searchWeather(searchTerm){
getSearchMethod(searchTerm);
$.ajax({
网址:`https://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${APPID}&units=${units}`,
成功:(数据)=>{
init(数据);
},
失败:(错误)=>{
log(“ERROR!”,err);
}
})
/*
取回(`https://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${ap
<head>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <div id="searchContainer">
        <input class="searchControl" type="text" placeholder="City Name or Zipcode" id="searchInput">
        <button class="searchControl" id="searchBtn">Search</button>
    </div>
    <div id="weatherContainer">
        <div id="weatherDescription">
            <h1 id="cityHeader"></h1>
            <div id="weatherMain">
                <div id="temperature"></div>
                <div id="weatherDescriptionHeader"></div>
                <div><img id="documentIconImg"></div>
            </div>
            <hr>
            <div id="windSpeed" class="bottom-details"></div>
            <div id="humidity" class="bottom-details"></div>
        </div>
    </div>
    <script src="script.js" ></script>
</body>
---
let appId = 'b1e22f9b3891a9a6fc389e3e1a4cc496';
let units = 'imperial'; 
let searchMethod; 

function getSearchMethod(searchTerm) {
    if(searchTerm.length === 5 && Number.parseInt(searchTerm) + '' === searchTerm)
        searchMethod = 'zip';
    else 
        searchMethod = 'q';
}

function searchWeather(searchTerm) {
    getSearchMethod(searchTerm);
    fetch(`http://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${appId}&units=${units}`)
        .then((result) => {
            return result.json();
        }).then((res) => {
            init(res);
    });
}

function init(resultFromServer) {
    switch (resultFromServer.weather[0].main) {
        case 'Clear':
            document.body.style.backgroundImage = "url('clear.jpg')";
            break;

        case 'Clouds':
            document.body.style.backgroundImage = "url('cloudy.jpg')";
            break;

        case 'Rain':
        case 'Drizzle':
        case 'Mist':
            document.body.style.backgroundImage = "url('rain.jpg')";
            break;

        case 'Thunderstorm':
            document.body.style.backgroundImage = "url('storm.jpg')";
            break;

        case 'Snow':
            document.body.style.backgroundImage = "url('snow.jpg')";
            break;

        default:
            break;
    }

    let weatherDescriptionHeader = document.getElementById('weatherDescriptionHeader');
    let temperatureElement = document.getElementById('temperature');
    let humidityElement = document.getElementById('humidity');
    let windSpeedElement = document.getElementById('windSpeed');
    let cityHeader = document.getElementById('cityHeader');

    let weatherIcon = document.getElementById('documentIconImg');
    weatherIcon.src = 'http://openweathermap.org/img/w/' + resultFromServer.weather[0].icon + '.png';

    let resultDescription = resultFromServer.weather[0].description;
    weatherDescriptionHeader.innerText = resultDescription.charAt(0).toUpperCase() + resultDescription.slice(1);
    temperatureElement.innerHTML = Math.floor(resultFromServer.main.temp) + '&#176;';
    windSpeedElement.innerHTML = 'Winds at  ' + Math.floor(resultFromServer.wind.speed) + ' m/s';
    cityHeader.innerHTML = resultFromServer.name;
    humidityElement.innerHTML = 'Humidity levels at ' + resultFromServer.main.humidity +  '%';

    setPositionForWeatherInfo();
}

function setPositionForWeatherInfo() {
    let weatherContainer = document.getElementById('weatherContainer');
    let weatherContainerHeight = weatherContainer.clientHeight;
    let weatherContainerWidth = weatherContainer.clientWidth;

    weatherContainer.style.left = `calc(50% - ${weatherContainerWidth/2}px)`;
    weatherContainer.style.top = `calc(50% - ${weatherContainerHeight/1.3}px)`;
    weatherContainer.style.visibility = 'visible';
}

document.getElementById('searchBtn').addEventListener('click', () => {
    let searchTerm = document.getElementById('searchInput').value;
    if(searchTerm)
        searchWeather(searchTerm);
});
---
function searchWeather(searchTerm) {
  getSearchMethod(searchTerm);
  $.ajax({
    url: `https://api.openweathermap.org/data/2.5/weather?${searchMethod}=${searchTerm}&APPID=${appId}&units=${units}`,
    success: (data) => {
      init(data);
    },
    failure: (err) => {
      console.log("ERROR!", err);
    }
  });
}