jQueryセレクタ selectedの取得と実行速度
select selectedの値の取得、処理速度からの最適化
10000回繰り返し、処理時間の計測。
jQuery
// 開始
console.time("$('option:selected', this)");
// 10000回実行
for(var i = 0; i < 10000; i++){
// 処理
var element = $('option:selected', this);
}
// 値
console.log(element.val());
// 終了
console.timeEnd("$('option:selected', this)");
選択されている値を取得する。
サンプル
セレクタ | 実行速度(10回平均) |
---|---|
$(this).children(':selected') | 68.723ms |
$(this).children('option:selected') | 82.966ms |
$('option:selected') | 202.638ms |
$('#fruits :selected') | 225.628ms |
$(this).find(':selected') | 246.597ms |
$('#fruits option:selected') | 253.76ms |
$('[name=fruits] option:selected') | 256.347ms |
$(this).find('option:selected') | 263.084ms |
$('select[name=fruits] option:selected') | 272.134ms |
$(':selected', this) | 288.376ms |
$('option:selected', this) | 307.609ms |
$(':selected') | 657.791ms |
$('[name=fruits] :selected') | 732.522ms |
$('select[name=fruits] :selected') | 749.835ms |
指定された値が選択されているか判定する。
サンプル
セレクタ | 実行速度(10回平均) |
---|---|
$('option[value=apple]') | 75.457ms |
$('[name=fruits] option[value=apple]') | 76.758ms |
$('select[name=fruits] option[value=apple]') | 77.204ms |
$('[value=apple]') | 77.76ms |
$('select option[value=apple]') | 78.402ms |
$('select[name=fruits] [value=apple]') | 79.634ms |
$('select [value=apple]') | 79.72ms |
$('[name=fruits] [value=apple]') | 80.219ms |
$('#fruits [value=apple]') | 80.65ms |
$('#fruits option[value=apple]') | 94.349ms |
結果一覧はphp.o0o0.jp-jQuery selectorsを参照。