是否可以使用jQuery读取元标记


157

是否可以使用jQuery读取元标记。如果是这样,您知道代码的基本结构是什么,或者具有任何教程的链接。

Answers:


307

只需使用类似:

var author = $('meta[name=author]').attr("content");

3
var author = $(“ meta [name ='author']”)。attr(“ content”); 报价略有下降。
Jim演讲者

1
@JimSpeaker:从技术上讲,没有必要为单个单词加上引号,尽管我同意最好不加引号。
澳洲航空94重型

20

这个解析器对您有帮助吗?

https://github.com/fiann/jquery.ogp

它将元OG数据解析为JSON,因此您可以直接使用数据。当然,如果愿意,您可以直接使用JQuery读取/写入它们。例如:

$("meta[property='og:title']").attr("content", document.title);
$("meta[property='og:url']").attr("content", location.toString());

注意属性值周围的单引号;这可以防止jQuery中的解析错误。


3
在OP询问META TAGS而不是OG Data时,您在此处指定的解析器(以及其他一些问题)是针对OG DATA的(您甚至自己说)。
Dementic

回复链接已死。
Denis G. Labrecque

8

我刚刚尝试过,这可能是jQuery版本特定的错误,但是

$("meta[property=twitter:image]").attr("content");

对我造成以下语法错误:

Error: Syntax error, unrecognized expression: meta[property=twitter:image]

显然,它不喜欢冒号。我可以通过使用双引号和单引号来修复它,如下所示:

$("meta[property='twitter:image']").attr("content");

(jQuery版本1.8.3-抱歉,我会对此@Danilo进行评论,但它不会让我发表评论)


5

jQuery现在支持.data();,因此如果您有

<div id='author' data-content='stuff!'>

var author = $('#author').data("content"); // author = 'stuff!'

4
$("meta")

应该给您返回一个标签名称为META的元素数组,然后您可以遍历集合以挑选出您感兴趣的元素的任何属性。


1

对于选择twitter meta name,您可以添加一个data属性。

例如:

meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.