Sizzleの拡張(疑似セレクター)

はじめに



ご存じのとおり、John ResigはSizzle (selector [、context])と呼ばれるまったく新しいセレクターエンジンを作成しました。



jQuery (min / gzip形式で4Kbのみ)とは別に使用することも、一緒に使用することもできます。



優れたパフォーマンスに加えて、優れた拡張性も備えているので、これについて説明します。



疑似セレクター





最も単純なケース:visibility = hiddenプロパティで要素を選択する擬似セレクターを記述します。



この例は、jQueryのSizzleが接続されていることを前提に書かれています。



< script type ="text/javascript" src ="/jslib/jquery.js" ></ script >

<div style= "visibility:hidden;" >test</div>

< script type= "text/javascript" >

( function (Sizzle)

{

Sizzle.selectors.filters[ 'vis-hidden' ] = function (elem)

{

return elem.style.visibility == 'hidden' ;

};

// .

var elts = Sizzle( ':vis-hidden' );

for ( var i = 0; i < elts.length; i++)

{

var elt = elts[i];

elt.innerHTML = 'Caught' ;

elt.style.visibility = '' ;

}

})(jQuery.find);

</ script >

* This source code was highlighted with Source Code Highlighter .








jQueryで使用する





シズルセレクターはjQueryで自然に機能します。



< script src ="/jslib/jquery.js" ></ script >

<div style= "visibility:hidden;" >test</div>

<script>

( function ($)

{

var Sizzle = $.find;



Sizzle.selectors.filters[ 'vis-hidden' ] = function (elem)

{

return elem.style.visibility == 'hidden' ;

};



$( ':vis-hidden' ).html( 'Caught' ).css( 'visibility' , '' );

})(jQuery);

</ script >




* This source code was highlighted with Source Code Highlighter .








セレクターとフィルター





他のセレクターおよびフィルターオプションの作成はもう少し複雑です。



All Articles