从没有名称的元素中选择属性

时间:2015-01-15 03:54:48

标签: javascript

我在HTML中有这个

<meta name="title" content="Hello World"/>
<meta property="article:published_time" content="2014-11-20T11:00:01+00:00"/>

我想访问文章:published_time内容数据。

在控制台中,这有效: document.getElementsByTagName("meta")['title']

但我不能得到“文章:发表”

document.getElementsByTagName("meta")['article:published_time']

显示为未定义。我尝试用“\\”

逃避

2 个答案:

答案 0 :(得分:2)

document.getElementsByTagName会返回HTMLCollection。可以使用[&#39; xyz&#39;]表示法访问集合的元素,但这将查找id为&#39; xyz&#39;的元素,或者,如果没有,则使用姓名&#39; xyz&#39;。集合的元素也可以通过整数索引访问,如下所示。

您的第一个示例有效,因为您有一个名为&#39; title的元素。&#39;但是你的第二个例子没有名字或id。因此,您必须遍历该集合:

var pub_time, collection = document.getElementsByTagName("meta");
for(var i = 0;i < collection.length;i++) {
  if(collection[i].getAttribute("property") === "article:published_time") {
   pub_time = collection[i].getAttribute("content");
}

有关HTMLCollection的更多信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection

答案 1 :(得分:0)

您正在寻找此http://jsfiddle.net/g1ckxrgj/

 $('meta[property="article:published_time"]').attr('content')