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

jQuery如何从外部txt文件读取文本适配现有文本轮播滑块

解决方案

核心问题说明

你之前的方法失效是因为load()是异步请求方法,原本的轮播初始化逻辑在DOM加载完成后就立刻执行,此时外部txt的内容还没加载到页面里,JS获取不到<a>元素,自然无法正常运行轮播逻辑。你需要把轮播初始化放到load()的回调函数中,等外部内容加载完成后再执行。

第一步:准备外部txt文件

新建updates.txt,直接写入你原本放在#updates里的全部<a>标签内容即可,不需要额外加其他代码:

<a href="redirect-link1.html">Text 1</a>
<a href="redirect-link2.html">Text 2</a>
<a href="redirect-link3.html">Text 3</a>

后续要修改轮播内容只需要改这个txt文件就行,所有引用的页面都会同步更新。

第二步:简化HTML结构

原本的HTML里#updates不需要再写内置内容,留空即可:

<div id="updates"></div>

CSS代码不需要做任何修改,沿用你原来的即可。

第三步:修改JS逻辑

调整后的JS代码如下,核心是把轮播初始化放到load的回调里:

$(function () {
    var slider = $("#updates");
    // 加载外部txt文件,加载完成后再初始化轮播
    slider.load("../updates.txt", function() {
        // 内容加载完成后再获取a元素
        var items = slider.children('a'),
            length = items.length,
            i = 0,
            change = function () {
                items.eq(i).fadeOut(300, function () {
                    i += 1;
                    if (i === length) {
                        i = 0;
                    }
                    items.eq(i).fadeIn(300);
                });
            };
        items.not(':first').hide();
        setInterval(change, 5000);
    });
});

注意事项

  • 注意load()里的txt文件路径要写对,路径是相对于当前HTML文件的位置,不是相对于JS文件的位置
  • 必须在服务端环境下测试,本地直接打开HTML文件会因为跨域规则无法加载本地txt文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:18:03