想要完全了解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/

10-10 00:29
查看更多