これは、function
に関するいくつかの明確化を得るための知識の問題です。 第1方法は私の同僚によって行われ、第2私によって1つ。私はeach
ループのファンではなく、時にはそれを必要に応じて使用します。私が好きなのは、要素を操作してそれを使用することです(2番目の方法)。「each」と「addClass回避策」は、ファイルがjQueryをロードするのがより簡単で簡単です
私の質問は速く1Sトンまたは第二方法があるものでしょうか? この機能にはforeach
を使用することができます。
$('select.test').on('change', function() {
var option_val = $(this).val(),
option_data_val = $(this).data('id');
$('select.test').each(function() {
if ($(this).data('id') != option_data_val) {
$(this).find('option[value="' + option_val + '"]').addClass('gotIt');
}
});
});
.gotIt{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="select_parent">
<select class="test" data-id="1">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
<div class="select_parent">
<select class="test" data-id="2">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
<div class="select_parent">
<select class="test" data-id="3">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
$('select.test').on('change', function() {
var option_val = $(this).val();
$('select.test').addClass('dummy-class');
$(this).closest('.select_parent').find('select.test').removeClass('dummy-class');
$('select.test option').removeClass('gotIt');
$('select.test.dummy-class option[value='+option_val+']').addClass('gotIt');
});
.gotIt{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="select_parent">
<select class="test" data-id="1">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
<div class="select_parent">
<select class="test" data-id="2">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
<div class="select_parent">
<select class="test" data-id="3">
\t <option value="1" class="hi">1</option>
\t <option value="2" class="hi">2</option>
\t <option value="3" class="hi">3</option>
\t <option value="4" class="hi">4</option>
\t <option value="5" class="hi">5</option>
\t <option value="6" class="hi">6</option>
</select>
</div>
_私の質問は、より速い第1または第2の方法ですか? "_あなた自身でベンチマークを実行しましたか? – guest271314
@ guest271314、いいえ - 実際にはそれを行う方法がありますか? – weBBer
[jQueryの子セレクタではなく、find()を使用する方が効率的ですか?](https://stackoverflow.com/questions/39993827/is-it-more-efficient-to-use-find-rather) jQuery /の子セレクタより) – guest271314