我需要的信息在一个元标签中。当属性=“视频”时,我如何访问元标签的“内容”数据?

HTML:

<meta property="video" content="http://video.com/video33353.mp4" />

当前回答

复杂网站和元数据的问题是元标签并不总是有itemprop属性。在某些情况下,它们只有itemprop而没有name属性。

使用这个脚本,您可以获得带有itemprop属性的所有元数据并打印其内容。

  const allMeta = document.getElementsByTagName("meta");
    
  for (let i = 0; i < allMeta .length; i++) {
      if( allMeta [i].getAttribute("itemprop") != null){
        console.log( allMeta [i].getAttribute("itemprop")+":"+allMeta [i].getAttribute('content') );
      }
  }

其他回答

其他答案应该可以做到这一点,但这一个更简单,不需要jQuery:

document.head.querySelector("[property~=video][content]").content;

最初的问题使用了带有property=""属性的RDFa标记。对于正常的HTML <meta name=""…>标签,您可以使用如下内容:

document.querySelector('meta[name="description"]').content

你可以用这个:

function getMeta(metaName) {
  const metas = document.getElementsByTagName('meta');

  for (let i = 0; i < metas.length; i++) {
    if (metas[i].getAttribute('name') === metaName) {
      return metas[i].getAttribute('content');
    }
  }

  return '';
}

console.log(getMeta('video'));

使用元根,然后获取和设置它的任何属性:

let meta = document.getElementsByTagName('meta')

console.log(meta.video.content)
> "http://video.com/video33353.mp4"

meta.video.content = "https://www.example.com/newlink"

在Jquery中,你可以实现这一点:

$("meta[property='video']");

在JavaScript中,你可以通过以下方法实现:

document.getElementsByTagName('meta').item(property='video');

有一个更简单的方法:

document.getElementsByName('name of metatag')[0].getAttribute('content')