No, no es posible que la alerta (o cualquier código que dependa del resultado de la llamada AJAX) esté fuera del callback de
$.get
si quieres acceder a los datos que se obtienen de esa llamada. Esto se debe a que
$.get
es asíncrono, lo que significa que el código que está fuera de su callback se ejecutará inmediatamente mientras la solicitud AJAX se procesa.
Sin embargo, si realmente necesitas acceder a
olis
más adelante en tu código, puedes hacerlo utilizando funciones o promesas. Aquí te muestro un par de formas de manejar esto.
### Opción 1: Usar una función
Puedes definir una función que se ejecute cuando
$.get
complete.
JavaScript:
var sowy = $("ins#s7sa89s0f0fg09").attr("dataid");
function manejarDatos(olis) {
alert(olis); // Aquí puedes usar el valor de olis
}
$.get(string + 'site=' + varche.replace("www.", "") + '&front=jeje', function(oms) {
var elementoHTML = document.createElement("html");
elementoHTML.innerHTML = oms;
var texto = elementoHTML.getElementsByClassName("datagetid")[0];
if (texto) {
var olis = texto.getAttribute("cool");
manejarDatos(olis); // Llama a la función con el valor
}
});
### Opción 2: Usar Promesas con jQuery
Puedes encapsular la llamada en una promesa para manejar su resultado más tarde:
JavaScript:
var sowy = $("ins#s7sa89s0f0fg09").attr("dataid");
function obtenerDatos() {
return new Promise((resolve, reject) => {
$.get(string + 'site=' + varche.replace("www.", "") + '&front=jeje', function(oms) {
var elementoHTML = document.createElement("html");
elementoHTML.innerHTML = oms;
var texto = elementoHTML.getElementsByClassName("datagetid")[0];
if (texto) {
var olis = texto.getAttribute("cool");
resolve(olis); // Resolvemos la promesa con el valor
} else {
reject("No se encontró el elemento.");
}
});
});
}
// Llamada a la función
obtenerDatos().then(olis => {
alert(olis); // Manejo del valor obtenido
}).catch(error => {
alert(error); // Manejo de errores
});
Ambas opciones te permiten manejar el valor de
olis
más adelante en tu código, manteniendo la lógica clara y asíncrona. Si tienes alguna otra pregunta, ¡hazmelo saber!