如何将特定元标记的 "name" 和 "content" 属性转换为 JavaScript 对象文字?
How do I convert the "name" and "content" attributes of specific meta tags into a JavaScript object literal?
我有几个如下所示的元标记:
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />
如何将这些 meta
标签(不止 1 个)转换成如下所示的 JavaScript 对象:
{ "id" : "2098949824982" , "name" : "Addan Salahehin" }
我尝试使用 forEach
方法,但 Addan
没有被删除。
我想使用 Vanilla JS 而不是 jQuery。
您可能会收到此错误,因为您没有删除或检查元名称的 "Addan:" 部分,请尝试改用它:
let metas = {};
[...document.querySelectorAll("meta")].forEach(meta => {
const split = meta.name.split(":");
if (split[0].trim().toLowerCase() == "addan") {
metas[split[1]] = meta.content;
}
});
console.log(metas);
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />
当你 运行 片段时,你应该得到这个输出:
Object { id: "2098949824982", name: "Addan Salahehin" }
注意: 这是一个有效的 code pen。
您可以将名称^=Addan 用于select 特定元数据并创建数组或对象
// Array:
let metas = [...document.querySelectorAll("meta[name^=Addan]")].map(meta => {
return {[meta.name.split(":")[1]] : meta.content}
});
console.log(metas);
// Object
metas = {};
document.querySelectorAll("meta[name^=Addan]").forEach(meta =>
metas[meta.name.split(":")[1]] = meta.content
);
console.log(metas);
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />
我有几个如下所示的元标记:
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />
如何将这些 meta
标签(不止 1 个)转换成如下所示的 JavaScript 对象:
{ "id" : "2098949824982" , "name" : "Addan Salahehin" }
我尝试使用 forEach
方法,但 Addan
没有被删除。
我想使用 Vanilla JS 而不是 jQuery。
您可能会收到此错误,因为您没有删除或检查元名称的 "Addan:" 部分,请尝试改用它:
let metas = {};
[...document.querySelectorAll("meta")].forEach(meta => {
const split = meta.name.split(":");
if (split[0].trim().toLowerCase() == "addan") {
metas[split[1]] = meta.content;
}
});
console.log(metas);
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />
当你 运行 片段时,你应该得到这个输出:
Object { id: "2098949824982", name: "Addan Salahehin" }
注意: 这是一个有效的 code pen。
您可以将名称^=Addan 用于select 特定元数据并创建数组或对象
// Array:
let metas = [...document.querySelectorAll("meta[name^=Addan]")].map(meta => {
return {[meta.name.split(":")[1]] : meta.content}
});
console.log(metas);
// Object
metas = {};
document.querySelectorAll("meta[name^=Addan]").forEach(meta =>
metas[meta.name.split(":")[1]] = meta.content
);
console.log(metas);
<meta name="Addan:id" content="2098949824982" />
<meta name="Addan:name" content="Addan Salahehin" />