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 .


セレクターとフィルター



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

Source: https://habr.com/ru/post/J53808/


All Articles