2016-06-30 3 views
1

Я хочу загрузить некоторый контент Jade в определенный div при нажатии кнопки. Я нашел, как сделать это с помощью JQuery, есть несколько сообщений о нем, и, по сути, что я хочу сделать, это

$('#div').load('/somePage'); 

Однако, я не могу использовать JQuery в моем проекте. Есть ли эквивалентная функция в javascript ванили?

+1

"Vanilla JavaScript" не имеет каких-либо положений для всего, что связано с ajax. Браузеры имеют старый API XMLHttpRequest, а более новые поддерживают API 'fetch()'. – Pointy

+1

Вы можете найти похожие вещи в http://youmightnotneedjquery.com/ –

+0

Также смотрите API 'fetch'. – gcampbell

ответ

6

Я думаю, вы можете сделать это со следующим:

var request = new XMLHttpRequest(); 

request.open('GET', '/somepage', true); 

request.onload = function() { 
    if (request.status >= 200 && request.status < 400) { 
    var resp = request.responseText; 

    document.querySelector('#div').innerHTML = resp; 
    } 
}; 

request.send(); 

Кстати, вы можете сделать это и с помощью API-интерфейса.

fetch('/somepage') 
    .then(function(response) { 
    return response.text(); 
    }) 
    .then(function(body) { 
    document.querySelector('#div').innerHTML = body; 
    }); 

Кстати, вы можете прочитать this blog post для обучения кое-что о выборки API.