0

WebページにあるXFN関係のメタデータをフィルタリングしようとしています。これは次のようなものです。

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

RELでは、「friend」、「collegue」などのさまざまな値を設定できますが、複数の値を設定できるため、「me」や「met」も設定できます。

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

しかし、「私」と「会った」の両方が一致しているため、これは機能しません。複数の値がある場合でも、値を正確にフィルタリングする方法はありますか?

ありがとうございました。

私はページを制御できないことに注意してください。実際、私はChrome拡張機能に取り組んでおり、このコードはどのWebページでも実行できるはずです。

4

3 に答える 3

0

[attribute~=value]セレクターを使用できます。xfnクラスとCSSクラスがどのように機能するかとまったく同じように、スペースで区切られた値に基づいて選択します。つまり、[class~=className]とまったく同じ.classNameです。

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

jQueryのドキュメントでは見つかりませんでしたが、少なくとも1.3では機能します。

于 2009-11-17T21:42:49.623 に答える
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

jQueryを使用しているので、次のようにすることができます:

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

これは基本的に、一致する可能性aのあるすべての要素を見つけてから、rel タグを配列に分割し、実際の一致が見つかったことを確認することでそれらをフィルタリングします。

編集: @UVL で見つかったコードを から に更新!$.inArrayしました。$.inArray > -1

于 2009-11-17T18:18:11.740 に答える