這是一個知識問題,我要獲得關於這個function
一些澄清。 1st方法由我的同事完成,並且第二個一個由我完成。我不是each
循環的粉絲,有時我將它用作需要,我喜歡的是操縱元素並使用它(第二種方法)。'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>
_「我的問題是哪個是更快的第一或第二種方法?」_您是否自己執行了基準測試? – guest271314
@ guest271314,不 - 實際上是有辦法做到的。? – weBBer
請參閱[在jQuery中爲子選擇器使用find()而不是>效率更高嗎?](https://stackoverflow.com/questions/39993827/is-it-more-efficient-to-use-find-rather -than換子選擇器功能於jQuery的/) – guest271314