首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jquery解析XFN数据

用Jquery解析XFN数据
EN

Stack Overflow用户
提问于 2009-11-17 17:59:32
回答 3查看 61关注 0票数 0

我试图过滤在网页中找到的XFN关系元数据。它是这样的:

代码语言:javascript
复制
<a href="site" rel="friend colleague" >Name</a>

在REL中,你可以有不同的价值观,比如“朋友”、“大学”,甚至还有“我”和“遇见”,因为你可以有多个价值观,我就这样做了:

代码语言:javascript
复制
xfn_me = $("a[rel*=me]").length; 

但这是行不通的,因为“我”和“相遇”都是匹配的!是否有一种方法可以准确地过滤值,即使存在多个值?

谢谢。

请注意,我没有控制的网页,事实上,我正在工作的Chrome扩展,这段代码应该运行在任何网页。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-17 21:42:49

您可以使用[attribute~=value]选择器。它基于与xfn和CSS类工作方式完全相同的空格分隔值进行选择,即[class~=className].className完全相同。

代码语言:javascript
复制
xfn_me = $("a[rel~=me]").length;

我在jQuery文档中找不到它,但它至少在1.3中工作。

票数 0
EN

Stack Overflow用户

发布于 2009-11-17 18:18:11

由于您使用的是jQuery,所以可以这样做:

代码语言:javascript
复制
$('a[rel*=me]').filter(function(){ 
   return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;

这基本上可以找到所有可能是匹配的a元素,然后通过将rel标记拆分成一个数组并检查实际匹配来过滤它们。

编辑:我将代码从!$.inArray更新到$.inArray > -1,由@UVL找到。

票数 0
EN

Stack Overflow用户

发布于 2009-11-17 21:18:51

解决方案(至少在jQuery1.2之前)是这样的:

代码语言:javascript
复制
xfn_me = $('a[rel*=me]').filter(function(){ 
 return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;

xfn_me中放入与"me“匹配的A标记的数量,即使使用了多个rel值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1750666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档