隐藏特定元素onload或ready或page:如果select标签具有特定值,则更改

时间:2016-08-03 19:29:32

标签: jquery

我试图在加载页面时隐藏一些元素。

目前我正在使用'page:change',因为我正在使用Turbolinks在Ruby on Rails中工作。

如果div包含具有特定值的select标记,我想隐藏一些元素 该页面可以包含多个选择标记,因此我无法使用ID。

此处的代码不起作用:

$(document).on('page:change', function(){

    if ($('.q_type_select').val() == 'text' || $('.q_type_select').val() == 'area') {
            $(this).closest('.question_fieldset').children('.choice_fieldset').hide();
            $(this).closest('.question_fieldset').children('.add_fields').hide();
        };
};

我想$(this)仅在您点击?

时才有效

如果我这样做:

$(document).on('page:change', function(){

    if ($('.q_type_select').val() == 'text' || $('.q_type_select').val() == 'area') {
            $('.question_fieldset').children('.choice_fieldset').hide();
            $('.question_fieldset').children('.add_fields').hide();
        };
};

我得到了隐藏该类的所有元素,而不是我想要的那些。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

假设你拥有的东西是正确的(因为没有HTML可供查看)。 试试这个

$(function(){
   $('.q_type_select').each(function(){
    var $this = $(this);
   if ($this.val() == 'text' || $this.val() == 'area') {
        $this.closest('.question_fieldset').children('.choice_fieldset').hide();
        $this.closest('.question_fieldset').children('.add_fields').hide();

    };
  })
});

循环遍历文档就绪函数页面中的所有元素(.q_type_select)并隐藏()它