我有一些代码,它使用ajax接收html,然后检索元标记。
if (request.readyState == 4) {
var html_text = request.responseText;
var parent = document.createElement('div');
parent.innerHTML = html_text;
var metas = parent.getElementsByTagName('meta');
var meta;
for(var i=0; i < metas.length; i++) {
meta = metas[i];
alert(meta.property);
alert(meta.content); }
}
html_text确实包含元属性和内容,内容确实显示。但为什么meta属性显示为undefined?谁能帮我这个?
答案 0 :(得分:1)
您必须查找meta.name
或使用meta.getAttribute("property")
。
btw:你是变量html_code
的内部HTML,但你将HTML内容存储在html_text
中。
答案 1 :(得分:0)
您可以尝试使用getAttribute获取属性属性:
alert(meta.getAttribute('property'));
我不确定为什么它不会按你的方式工作。
答案 2 :(得分:0)
你在这里尝试的是一种新文档的创建,它至少在IE中不起作用。
把这一行
alert(parent.innerHTML)
之后:
parent.innerHTML = html_text;
...你会看到,你只得到了身体的内容,其他一切都被省略了。
如果响应有效xml,request.responseXML
应该可用,您可以直接检查它(它已经是文档)。