在JavaScript

时间:2016-10-30 18:22:45

标签: javascript html

此问题与Get meta data attribute in javascript不重复。我想通过语言获得meta name

我在HTML代码中有以下内容:

<meta name="DC.Subject" xml:lang="pl" content="wróg" />
<meta name="DC.Subject" xml:lang="en" content="enemy" />

HTML中还有其他meta name个标记。

使用以下方法获取第一个DC.Subject的内容非常容易:

document.getElementsByName("DC.Description")[0].getAttribute("content"))

和第二个

document.getElementsByName("DC.Description")[1].getAttribute("content"))

但这不是语言特定。但是,如何在 JavaScript 中使用DC.Description获取xml:lang=的内容?

2 个答案:

答案 0 :(得分:1)

您可以按如下方式使用document.querySelector

var plMeta = document.querySelector('[xml\\:lang="pl"][name="DC.Subject"]');

console.log(plMeta);
<meta name="DC.Subject" xml:lang="pl" content="wróg">
<meta name="DC.Subject" xml:lang="en" content="enemy">

这是一个相关的Q&amp; A,可以更好地与涉及名称空间的CSS选择器联系:Is it possible to use HTML's .querySelector() to select by xlink attribute in an SVG?

答案 1 :(得分:0)

您需要转义属性名称中有问题的:字符:

&#13;
&#13;
var xml_lang_elements = document.querySelectorAll('[xml\\:lang][name="DC.Subject"]');
for (var i = 0; i < xml_lang_elements.length; i++) { 
  console.log(xml_lang_elements[i].getAttribute('content'));
}
&#13;
<meta name="DC.Subject" xml:lang="pl" content="wróg" />
<meta name="DC.Subject" xml:lang="en" content="enemy" />
&#13;
&#13;
&#13;