You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在天气查询AJAX功能中如何在HTML模态框使用JS变量newDate?

问题描述

我编写了如下用于获取天气的JavaScript AJAX函数:

function getWeather(countryName) {
    const monthNames = ["January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
    ];

    let dateObj = new Date();
    let month = monthNames[dateObj.getUTCMonth()];
    let day = dateObj.getUTCDate() - 1;
    let year = dateObj.getUTCFullYear();

    let newDate = `${month} ${day}, ${year}`;
    
    $.ajax({
        url: "assets/geojson/countryBorders.geo.json",
        type: "GET",
        dataType: "json",
        data: {
            
        },
        success: function(result) {
.... etc

我希望在用于展示各国天气的HTML模态框中显示日期等信息,该模态框代码如下:

<div class="modal-body">
          <h6 id="capitalCity" class="modal-sub-header"></h6>
          <hr>
          <ul class="dem">
              <p class="date" id="newDate"></p>

请问是否可以在该HTML模态框中使用上述JavaScript变量newDate的内容?

解决方案

当然可以,只需要把newDate的值赋值给模态框中对应ID的DOM元素即可,以下是两种常用实现方式:

方式一:定义变量后直接赋值(模态框已存在于DOM时)

在getWeather函数里定义完newDate后,直接通过jQuery或原生JS修改DOM内容:

jQuery写法:

let newDate = `${month} ${day}, ${year}`;
// 将日期赋值给模态框的对应元素
$('#newDate').text(newDate);

原生JavaScript写法:

let newDate = `${month} ${day}, ${year}`;
// 将日期赋值给模态框的对应元素
document.getElementById('newDate').textContent = newDate;

方式二:在AJAX成功回调中赋值(模态框随请求结果显示时)

如果模态框是在AJAX获取数据后才触发显示,把赋值逻辑放在success回调里更稳妥,能确保DOM元素已准备就绪:

success: function(result) {
    // 其他业务处理逻辑...
    // 赋值日期
    $('#newDate').text(newDate);
    // 或者用原生JS:document.getElementById('newDate').textContent = newDate;
    // 这里添加显示模态框的代码,比如 $('#yourModalId').modal('show');
}

注意:要保证执行赋值代码时,ID为newDate的<p>标签已经存在于页面DOM中,否则会因找不到元素导致赋值失败。如果模态框是动态生成的,需要等它被添加到DOM后再执行赋值操作。

内容的提问来源于stack exchange,提问作者GIS_User2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:20:51