Javascript 我可以用等效的fetch()调用替换jQuery.load()一行程序吗?

Javascript 我可以用等效的fetch()调用替换jQuery.load()一行程序吗?,javascript,jquery,ajax,fetch,one-liner,Javascript,Jquery,Ajax,Fetch,One Liner,我有一个使用jQuery一行程序的页面 $('#id').load('/url'); 在特定位置将片段加载到DOM中 如果我想删除对jQuery的依赖,是否有一种简单的替代方法可以做到这一点-可能是使用相对较新的fetch()API?您可以这样做: fetch('/method') .then(response=> response.text()) .then(res => { document.getElementById('id').innerHTML = res; });

我有一个使用jQuery一行程序的页面

$('#id').load('/url');
在特定位置将片段加载到DOM中

如果我想删除对jQuery的依赖,是否有一种简单的替代方法可以做到这一点-可能是使用相对较新的fetch()API?

您可以这样做:

fetch('/method')
.then(response=> response.text())
.then(res => { document.getElementById('id').innerHTML = res; });
这样做:

fetch('/url')
  .then(response => response.text())
  .then(value => {
    document.getElementById('id').innerHTML = value
  });
几乎是一行:)

;(异步()=>{
document.getElementById('id').innerHTML=await(await fetch('/url')).text();
})();
要将其用于实际应用,您至少需要检查响应代码,因此我首先像这样重构它

;(async () => {
    let res = await fetch('/url');
    if(res.ok){
        document.getElementById('id').innerHTML = await res.text();   
    }
    else { ... }
})();

仍然缺少错误处理,但我相信您已了解情况:)

这不起作用。我在页面中看到的是
[对象响应]
,而不是HTML代码段。实际上它正在工作,我忘记了转换响应。现在您的答案与@Magiczne的答案没有什么不同。这是否回答了您的问题?这回答了你的问题吗?这回答了你的问题吗?这回答了你的问题吗?注意:如果您的响应中有任何内容,它将不会与$.load相反运行