jquery getelementbyId на данных ajax
-
02-10-2019 - |
Вопрос
Я получил функцию в JavaScript, которые сначала проверяют, является ли имя пользователя необходимой длиной и чем отправляет имя пользователя на страницу для теста, если тест успешно, будет<span id="username">true</span>
еще<span id="username">false</span>
Я продолжаю получать ошибку, что GETELEMANCEBYID не существует на возвратных данных
function checkuser(user, wd,id, sub)
{
if(user.length < 7)
{
document.getElementById(id).innerHTML = "Your username is too short. It must be longer than 6 charaters";
document.getElementById(sub).disabled = true;
return false;
} else {
$.post(wd + "register/checkuser/" + user,
function(data){
alert("Data Loaded: " + data.getElementById('username').innerHTML;
});
}
}
Решение
Вы должны сделать это:
function checkuser(user, wd, id, sub) {
if(user.length < 7) {
$("#"+id).html("Your username is too short. It must be longer than 6 characters");
$("#"+sub).attr("disabled", true);
return false;
}
else {
$.post(
wd + "register/checkuser/" + user,
function(data){
alert("Data Loaded: " + $(data).find("#username").html());
}
);
}
}
Другие советы
То data
Возвращаемое значение - это строка, а не Domdocument - таким образом у него нет функции члена GetElementByID.
Лучшая идея будет иметь вместо этого вашего тестовой страницы, а также проанализируйте.
Если вы не можете изменить страницу, которая выполняет тестирование / возвращение, то вам нужно найти другой способ анализа строки возврата, которая обслуживает ваши цели.
Попробуй это:
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
Или это, в зависимости от структуры HTML возвращена:
function(data){
alert( "Data Loaded: " + $(data).filter('#username').html() );
});