0

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

<a href="site" rel="friend colleague" >Name</a>

在 REL 中你可以有不同的值,比如“friend”、“collegue”,甚至是“me”和“met”,因为你可以有多个值,我这样做了:

xfn_me = $("a[rel*=me]").length; 

但这不起作用,因为“me”和“met”都匹配!有没有办法精确过滤值,即使有多个值?

谢谢你。

请注意,我无法控制页面,实际上我正在开发 Chrome 扩展程序,并且此代码应该在任何网页上运行。

4

3 回答 3

0

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

$('a[rel*=me]').filter(function(){ 
   return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;

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

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

于 2009-11-17T18:18:11.740 回答
0

一个解决方案(至少在 jquery 1.2 之前)是这样的:

xfn_me = $('a[rel*=me]').filter(function(){ 
 return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;

即使使用多个 rel 值,也放入匹配“me”的标签xfn_me数量。Arel

于 2009-11-17T21:18:51.860 回答
0

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

xfn_me = $("a[rel~=me]").length;

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

于 2009-11-17T21:42:49.623 回答