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

调用名言API获取的作者名在浏览器不显示但控制台正常

问题解决:名言API获取的作者名无法在页面显示(控制台可见)

问题根源

你的代码存在核心逻辑错误:执行quote.innerText = quoteData时,直接替换了整个.quote容器的所有内容——这会把DOM中原有的<span id="author">元素彻底删除。尽管控制台能正常打印authorName(说明API数据获取正常),但此时author变量指向的元素已不在DOM树中,后续的author.innerText = authorName自然无法在页面生效。

修复方案

方案1:更新指定元素(推荐)

保留原DOM结构,只更新名言内容和作者文本,不替换整个容器。将quote.innerText = quoteData改为更新已选中的desc元素(对应#content):

const container = document.querySelector(".container")
const quote = document.querySelector(".quote")
const desc = document.querySelector("#content")
const btn = document.querySelector("#btn")
const author = document.querySelector("#author")

btn.onclick = () => {
    
    const fetchData = async() => {
        
        const url = `https://api.quotable.io/quotes/random`
        const response = await fetch(url)
        const data = await response.json()
        const x = data[0]
    
        const quoteData = x.content
        const authorName = x.author
        // 仅更新名言内容元素
        desc.innerText = quoteData
        author.innerText = authorName
    }
    fetchData()
}

方案2:重新构建容器内容(可选)

如果需要替换整个.quote容器的内容,需确保新内容中包含作者元素:

const container = document.querySelector(".container")
const quote = document.querySelector(".quote")
const desc = document.querySelector("#content")
const btn = document.querySelector("#btn")
const author = document.querySelector("#author")

btn.onclick = () => {
    
    const fetchData = async() => {
        
        const url = `https://api.quotable.io/quotes/random`
        const response = await fetch(url)
        const data = await response.json()
        const x = data[0]
    
        const quoteData = x.content
        const authorName = x.author
        // 重新构建容器内的HTML结构,包含作者元素
        quote.innerHTML = `
            <p id="content">${quoteData}</p>
            <span id="author">${authorName}</span>
        `
    }
    fetchData()
}

效果说明

修改后,点击按钮时会正确更新名言内容和作者文本,作者元素持续存在于DOM中,页面即可正常显示作者名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:33:05