在ajax响应中从html获取输入值

get input value from html in ajax response

本文关键字:获取 输入 html ajax 响应      更新时间:2023-09-26

要获得页面的html响应,我使用:

var theUrl = "https://example.com/users/22";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send();
var html = xmlHttp.responseText;

这将返回一个535行的html页面。如果我们只是在当前页面上有源代码,就可以获得如下所示的标签值(12345):

<input name="token" type="hidden" value="12345" />

我们可以简单地使用:

document.getElementsByName("token")[0].value;

但是,由于HTML在ajax响应中是一个名为html的变量,我如何获得带有name token的输入值?我可以以某种方式将其转换为DOM元素,然后运行该代码吗?请只使用javascript,不使用jQuery。谢谢

尝试创建一个HTML元素,添加响应,然后解析它。我们需要添加一个类名来使用getElementsByClassName选择特定的输入,或者,如果你想选择所有输入,你可以使用getElements ByTagName

var responseText = '<input name="token" class="token" type="hidden" value="12345" />'
var el = document.createElement( 'html' );
el.innerHTML = responseText;
console.log(el.getElementsByClassName("token")[0].value); 

您可以这样解析xmltHttp.response文本:

 var xmlString = "<input name='token1' type='hidden' value='12345' />"; // Use your xmlHttp.responseText here. This is for demonstration purposes
 var parser = new DOMParser();
 var element = parser.parseFromString(xmlString, "text/html");
 console.log(element.querySelectorAll('[name="token1"]')[0].value);