Так не сработает.
Как вариант можно использовать промисы, но по сути это то же.
Если используете какой-либо транспилятор, то можно воспользоваться синтаксисом async/await.
Тогда будет выглядеть как-то так:
function getElement(url, selector) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://asdc.cf' + url, true);
xhr.onreadystatechange = function() {
if(xhr.readyState === 4) {
if(xhr.status === 200) {
html = document.createElement('div');
html.innerHTML = xhr.responseText;
resolve(html.querySelector(selector));
}
}
}
xhr.send();
});
}
И использование:
var result;
getElement('https://toster.ru/', '#nav-questions').then(function(res) {
result = res;
});
или если использовать async/await:
let result = await getElement('https://toster.ru/', '#nav-questions');