我试图过滤在网页中找到的XFN关系元数据。它是这样的:
<a href="site" rel="friend colleague" >Name</a>在REL中,你可以有不同的价值观,比如“朋友”、“大学”,甚至还有“我”和“遇见”,因为你可以有多个价值观,我就这样做了:
xfn_me = $("a[rel*=me]").length; 但这是行不通的,因为“我”和“相遇”都是匹配的!是否有一种方法可以准确地过滤值,即使存在多个值?
谢谢。
请注意,我没有控制的网页,事实上,我正在工作的Chrome扩展,这段代码应该运行在任何网页。
发布于 2009-11-17 21:42:49
您可以使用[attribute~=value]选择器。它基于与xfn和CSS类工作方式完全相同的空格分隔值进行选择,即[class~=className]与.className完全相同。
xfn_me = $("a[rel~=me]").length;我在jQuery文档中找不到它,但它至少在1.3中工作。
发布于 2009-11-17 18:18:11
由于您使用的是jQuery,所以可以这样做:
$('a[rel*=me]').filter(function(){
return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;这基本上可以找到所有可能是匹配的a元素,然后通过将rel标记拆分成一个数组并检查实际匹配来过滤它们。
编辑:我将代码从!$.inArray更新到$.inArray > -1,由@UVL找到。
发布于 2009-11-17 21:18:51
解决方案(至少在jQuery1.2之前)是这样的:
xfn_me = $('a[rel*=me]').filter(function(){
return $.inArray('me', $(this).attr('rel').split(' ')) > -1;
}).length;在xfn_me中放入与"me“匹配的A标记的数量,即使使用了多个rel值。
https://stackoverflow.com/questions/1750666
复制相似问题