jQuery - Drop Down QA
HTML: The only change is that they are wrapped in a div id'ed container which will be used in event handling, explained below.

&lt;div id="container"&gt;
    &lt;div class="qapair"&gt;
         &lt;h4 class="question"&gt;First Question&lt;/h4&gt;
         &lt;div class="answer"&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="qapair"&gt;
         &lt;h4 class="question"&gt;Second Question&lt;/h4&gt;
         &lt;div class="answer"&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="qapair"&gt;
         &lt;h4 class="question"&gt;Third Question&lt;/h4&gt;
         &lt;div class="answer"&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


JS: Explained in the comments

//shorthand for $(document).ready(fn) is $(fn)
$(function () {

        //container will be used for delegated event handling
    var container = $('#container'),
        //since questions remain static, it's best we reference ahead of time
        questions = $('.question',container);

    //take advantage of delegation which assigns one handler to the parent
    //for all events in it's descendant. Here, we place a handler on container
    //for all question instead of putting a handler per question
    container.on('click', '.question', function (event) {
        var question = $(this);

        //we use 'next' which directly gets the next sibling instead of siblings(selector). 
        //though internal implementations might be the same, but at least we avoid
        //writing that many selectors in our implementation
        question
            .next()
            .slideToggle(400);

        //using the referenced questions, we remove the currently clicked, pick
        //their answers that are currently visible and slide them up
        questions
            .not(question)
            .next(':visible')
            .slideUp(400);
    });
});


Here's running code. It's more of a readability and maintainability optimization rather than performance.