单击twitter按钮时获取数据attr。

单击推文按钮时,我需要访问data-url =“some link”。

使用此代码:

twttr.events.bind('click', function(event) { var tweeturl = $('.twitter-share-button').data("url"); var count = $('.twitter-share-button').data("count"); console.log(tweeturl, count); }); 

但是控制台正在输出’undefined undefined’。 任何人都可以告诉我为什么会这样,以及如何解决它?

查看完整的JS Fiddle 。

非常感谢大家。

看起来twitter API正在改变您的链接并将其放入IFrame中。 因此链接可以更长时间访问。 我可能需要更好地了解您的问题,以便正确回答您的问题。

但是你也可以将你的数据存储在foo元素中吗?

 twttr.events.bind('click', function(event) { var tweeturl = $('#foo').data("url"); var count = $('#foo').data("count"); console.log(tweeturl, count); }); 

http://jsfiddle.net/ZwHBf/87/

获取URL很简单,只需使用此HTML:

 

和这个事件处理程序:

 twttr.events.bind('click', function(event) { var link = $(event.target).parent().data('url'); console.log(link); }); 

Twitter的javascript将.twitter-share-button链接转换为包含共享按钮html的iframe。 这意味着当您尝试在代码中选择它时,实际上是在选择一个没有链接所具有的data-*属性的iframe。

您也无法获取iframe的内容并因查找同源策略而找到计数。

但是,您可以使用Twitter的api获取推文数量:

 $.ajax({ dataType: "jsonp", url: 'http://urls.api.twitter.com/1/urls/count.json?url=http://ios-blog.co.uk', success: function (data) { console.log(data.count); } }); 

看到这个工作示例: http : //jsfiddle.net/TDgX5/

但是,这不是官方推荐的方法,可能不应过分依赖。 可能有更好的方法来解决您的问题,您使用的是什么?