Reputation: 51100
Is it possible to use jQuery to read meta tags. If so do you know what the basic structure of the code will be, or have links to any tutorials.
Upvotes: 169
Views: 137211
Reputation: 21565
Just use something like:
var author = $('meta[name=author]').attr('content');
or this as well
var author = $('meta[name=author]').prop('content');
Upvotes: 333
Reputation: 1670
Would this parser help you?
https://github.com/fiann/jquery.ogp
It parses meta OG data to JSON, so you can just use the data directly. If you prefer, you can read/write them directly using JQuery, of course. For example:
$("meta[property='og:title']").attr("content", document.title);
$("meta[property='og:url']").attr("content", location.toString());
Note the single-quotes around the attribute values; this prevents parse errors in jQuery.
Upvotes: 22
Reputation: 21
For select twitter meta name , you can add a data attribute.
example :
meta name="twitter:card" data-twitterCard="" content=""
$('[data-twitterCard]').attr('content');
Upvotes: 1
Reputation: 662
jQuery now supports .data();
, so if you have
<div id='author' data-content='stuff!'>
use
var author = $('#author').data("content"); // author = 'stuff!'
Upvotes: 5
Reputation: 2001
I just tried this, and this could be a jQuery version-specific error, but
$("meta[property=twitter:image]").attr("content");
resulted in the following syntax error for me:
Error: Syntax error, unrecognized expression: meta[property=twitter:image]
Apparently it doesn't like the colon. I was able to fix it by using double and single quotes like this:
$("meta[property='twitter:image']").attr("content");
(jQuery version 1.8.3 -- sorry, I would have made this a comment to @Danilo, but it won't let me comment yet)
Upvotes: 9
Reputation: 1346
$("meta")
Should give you back an array of elements whose tag name is META and then you can iterate over the collection to pick out whatever attributes of the elements you are interested in.
Upvotes: 4