.filter()
セレクターや条件関数を指定して、マッチしている要素をフィルタリングします。
- .filter( selector ) 1.0追加
- .filter( function(index) ) 1.0追加
- .filter( element ) 1.4追加
- .filter( jQuery object ) 1.4追加
- サンプル
- デモ
.filter( selector ) 1.0追加
戻り値:jQuery
引数 | 説明 |
---|---|
selector | フィルタリングをセレクタで指定します。 |
.filter( function(index) ) 1.0追加
戻り値:jQuery
引数 | 説明 |
---|---|
function(index) | マッチしている各要素に対して関数を実行し、戻り値がtrueであれば残し、falseであれば除外します。 関数内で各要素はthisで参照可能です。 |
.filter( element ) 1.4追加
戻り値:jQuery
引数 | 説明 |
---|---|
element | フィルタリングをDOM要素で指定します。 |
.filter( jQuery object ) 1.4追加
戻り値:jQuery
引数 | 説明 |
---|---|
jQuery object | フィルタリングをjQueryオブジェクトで指定します。 |
サンプル
例えば、次のような処理を実行するとインデックス番号が偶数のLI要素の背景が赤くなります。
$('li').filter(':even').css('background-color', 'red');
関数を使用した例です。下記のようなコードがあった場合、
<ul>
<li><strong>リスト</strong> 項目1 - 1つのSTRONG要素</li>
<li><strong>リスト</strong> 項目 <strong>2</strong> - 2つの <span>STRONG要素</span></li>
<li>リスト 項目 3</li>
<li>リスト 項目 4</li>
<li>リスト 項目 5</li>
<li>リスト 項目 6</li>
</ul>
次の処理を実行すると、リスト項目1のは池のみが赤くなります。
$('li').filter(function(index) {
return $('strong', this).length == 1;
}).css('background-color', 'red');
また、関数に指定されてるindexはマッチした要素のインデックス番号になります。
デモ
全てのDIV要素の背景色を変更した後、middleクラスを持つ要素に絞り込んで赤いボーダーで囲っています。
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left;
border:2px white solid;}
</style>
<script src="http://code.jquery.com/jquery-latest.js">
</script>
</head>
<body>
<div></div>
<div class="middle"></div>
<div class="middle"></div>
<div class="middle"></div>
<div class="middle"></div>
<div></div>
<script>
$("div").css("background", "#c8ebcc")
.filter(".middle")
.css("border-color", "red");
</script>
</body>
</html>
DIV要素選択して背景を変更した後、フィルタリングに関数を指定してインデックス番号が1もしくはIDが"forth"の要素を 取り出してボーダーは赤の二重線で囲っています。
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left;
border:3px white solid; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="first"></div>
<div id="second"></div>
<div id="third"></div>
<div id="fourth"></div>
<div id="fifth"></div>
<div id="sixth"></div>
<script>
$("div").css("background", "#b4b0da")
.filter(function (index) {
return index == 1 || $(this).attr("id") == "fourth";
})
.css("border", "3px double red");
</script>
</body>
</html>
© 2010 - 2017 STUDIO KINGDOM