faq toggle添加选择器

时间:2013-09-12 10:13:28

标签: javascript jquery html

我要切换常见问题。

当我点击" +"它toogle回答并显示/隐藏它。

如果点击&#34,我想切换。 +"以及问题的标题。

问题:

如何使用 h3 元素(问题标题)和/或 * + * 按钮切换回答

HTML:

<div class="box boxFaq clearfix">                  
    <div class="boxTitle">
        <h3>Question</h3>
    </div>
    <button class="clearfix">+</button>
    <div style="clear: both;"></div>
    <div class="boxContent clearfix toggle">                     
        Answer answer answer                                                                    
    </div>
</div>  

JS:

jQuery(document).ready(function() {
    jQuery('button').click(function() {
        jQuery(this).next().next('.toggle').slideToggle();
        if (jQuery(this).text() === '+') {
            jQuery(this).html('-');
        }
        else {
            jQuery(this).html('+');
        }
    });
});

4 个答案:

答案 0 :(得分:0)

将h3添加到选择器...并使用parents()closest()

 jQuery(document).ready(function() {
  jQuery('h3,button').click(function() {
     var $parent=jQuery(this).parents('.boxFaq');
    $parent.find('.toggle').slideToggle();
    if ($parent.find('button').text() === '+') {
        jQuery(this).html('-');
    }
    else{
        jQuery(this).html('+');
    }

   });
 });

答案 1 :(得分:0)

 if (jQuery(this).text() === '+') {
            $('h3').text('Answer');  //Change the text here
            jQuery(this).html('-');  
        }
        else {
            jQuery(this).html('+');
            $('h3').text('Question');  //Again here
        }

选中此Fiddle

答案 2 :(得分:0)

您可以使用,分隔多个选择器。然后你只需稍微修改处理程序的逻辑以适用于这两个元素。试试这个:

jQuery('.boxFaq button, .boxFaq h3').click(function() {
    var $parent = jQuery(this).closest('.boxFaq');
    var $btn = $parent.find('button')
    $parent.find('.toggle').slideToggle();
    $btn.text($btn.text() === '+' ? '-' : '+');
});

Example fiddle

另请注意,我将+/-逻辑修改为简单的三元表达式。

答案 3 :(得分:0)

修改HTML代码

<div class="boxContent clearfix toggle" style="display: none;">                     
        Answer answer answer                                                                    
    </div>

修改你的jquery代码

jQuery(document).ready(function() {
    jQuery('button').click(function() {
        jQuery(this).next().next().slideToggle();
        if (jQuery(this).text() === '+') {
            jQuery(this).html('-');
        }
        else {
            jQuery(this).html('+');
        }
    });
});

检查此更新的fiddle