【问题标题】:Is there a way in jQuery to modify .html() so that it adds code rather than overwriting?jQuery 中有没有办法修改 .html() 以便它添加代码而不是覆盖?
【发布时间】:2020-10-05 05:43:50
【问题描述】:

我正在努力从 API 中检索数据。我正在设计我的代码以对 API 进行多个查询,然后将它们添加到我的 HTML 中的运行结果列表中。由于API返回的数据,没有办法一次性获取全部然后切片,我需要多次获取。

看看这段代码:

function renderResults(results) {
    return $('#results-section').html(genResults(results));
}

函数 renderResults() 在我的 API 调用中被调用

.fetch(URL)
   .then([code that is working properly])
   .then(call renderResults() here)

我已经在控制台记录了我的 API 结果并在 Postman 中测试了 API 调用,因此我知道它的构造正确 - 只是试图提供正确的上下文。

回顾一下,results 是来自 API 的数据,results-section 是我的 HTML 中结果容器的标记方式,genResults(results) 函数创建模板 HTML,其中包含来自 results 的值。

当您使用.html 时,它会覆盖之前指示的部分中的所有内容。我正在寻找一种方法,将genResults(results) 生成的模板 HTML 添加到我已经 ID 为 results-section 的容器中的任何 HTML,而不是替换那里的内容。我试过链接.append(),但似乎找不到成功的方法。

显而易见的解决方案是让 for 循环根据需要创建尽可能多的结果子部分,但问题是在从 API 获得结果之前我不知道需要多少部分。

有什么想法吗?

更新:

Souvik Ghosh 的回答奏效了。我试图将.append() 链接到.html(),但我没有意识到它实际上取代了它。

$( "#results-section" ).append( "Your data from the last API call" );

【问题讨论】:

标签: javascript html jquery dom


【解决方案1】:

你可以使用 jQuery 追加。

$( "#results-section" ).append( "Your data from the last API call" );

阅读更多:https://api.jquery.com/append/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多