要获取页面的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。
感谢。
答案 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);