想要完全了解Jquery中“ this”的工作方式。
一些生成3个select下拉列表,错误消息和按钮的HTML
<select class="kwas">
<option value="-1">-- wybierz --</option>
<option value="yes">tak</option>
<option value="no">nie</option>
</select>
<div style="display: none;" class="error">Can't be done</div>
<select class="kwas">
<option value="-1">-- wybierz --</option>
<option value="yes">tak</option>
<option value="no">nie</option>
</select>
<div style="display: none;" class="error">Can't be done</div>
<select class="kwas">
<option value="-1">-- wybierz --</option>
<option value="yes">tak</option>
<option value="no">nie</option>
</select>
<div style="display: none;" class="error">Can't be done</div>
<button class="button">Click Me!</button>
jQuery函数:
$(".kwas").change(function(){
if ( $(this).val() == 'no' ) {
$('.error').hide();
$('.button').show();
}
else {
$('.error').show();
$('.button').hide();
}
});
我要达到的目的是不要重复myslef并编写一个将显示的函数
特定选择的错误消息的值为“是”,而其他选择则没有。
如果任何选择的值都为“是”,则隐藏按钮。
我知道如何以丑陋的方式编写它,但是如何使其优雅?
http://jsfiddle.net/szymondzumak/Z8f6n/
最佳答案
尝试使用next()
方法,该方法使您可以查找DOM中的下一个元素,对于您的情况,该元素具有.error
类,例如:
$(".kwas").change(function(){
if ($(this).val() == 'no' ) {
$(this).next('.error').hide();
$('.button').show();
} else {
$(this).next('.error').show();
$('.button').hide();
}
});
关于javascript - 将“this”与多项选择一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22634679/