2009-11-17 8 views
0

웹 페이지에서 발견되는 XFN 관계 메타 데이터를 필터링하려고합니다. "친구", "의 동료"하지만 심지어 "나"와 "만난"당신은 여러 값을 가질 수 있기 때문에, 나는이 그랬던 것처럼,Jquery로 XFN 데이터 구문 분석

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

REL에서 다양한 값을 가질 수 있습니다 이 같은 것입니다 :

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

하지만이 작동하지 않는, 모두 "나"가과 일치 "만난"때문에! 값이 여러 개인 경우에도 정확하게 값을 필터링 할 수 있습니까?

감사합니다.

실제로 Chrome 확장 프로그램에서 작업하고있어이 코드는 모든 웹 페이지에서 실행되어야합니다.

답변

0

[attribute~=value] 선택기를 사용할 수 있습니다. xfn 및 CSS 클래스의 작동 방식과 마찬가지로 공백으로 구분 된 값을 기준으로 선택합니다. 즉 [class~=className]은 정확히 .className과 같습니다.

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

jQuery 설명서에서 찾을 수 없지만 적어도 1.3에서 작동합니다.

+0

놀라운! 정말 고마워, jQuery 문서에서 누락되었습니다. – Omiod

+0

와아! 아주 멋지다. jQuery가 그렇게 할 수 있는지 몰랐습니다. 다음은 1.4 용 문서로 바뀌기를 바란다. –

0

당신이 jQuery를 사용하고 있기 때문에, 당신은 이런 식으로 할 수있는 : 다음에 확인해 태그를 분할하여 그들을 필터링, 기본적으로 일치 될 수있는 모든 a 요소를 발견

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

을 어레이와 실제 일치를 확인하는 것이 발견됩니다.

편집 : @UVL에서 찾은 코드 !$.inArray에서 $.inArray > -1으로 업데이트했습니다. 여러 REL 값이 "나"rel 매칭 A 태그의 수를 사용해도 xfn_me

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

둔다 :

+0

감사합니다. 코드가 따라야 할 경로를 보여 주었지만, inarray가 발견 된 항목의 색인을 반환하고 부정확 한 값을 반환하기 때문에 값의 일부만 일치하는 것으로 나타났습니다. 아래에 올바른 코드를 게시하려고합니다. – Omiod

+0

UVL에 감사드립니다. 제 코드도 업데이트했습니다. –

0

용액 (1.2까지 JQuery와 적어도)이있다.