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

时间:2015-12-21 14:29:47

标签: javascript html ajax response

要获取页面的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的变量,如何使用名称标记获取输入的值?我可以以某种方式将其转换为DOM元素,然后运行该代码? javascript只请,没有jQuery。 感谢。

2 个答案:

答案 0 :(得分:2)

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

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); 

答案 1 :(得分:1)

您可以像这样解析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);