单击链接时更改div中的内容

时间:2013-05-06 21:09:32

标签: javascript jquery html css

我想在点击该框上方的链接时更改div内容框。我在单个按钮上添加了一个单击功能,然后应显示包含该特定框内容的相应潜水。

当我将jQuery应用到页面时,内容不会根据单击的链接而改变,并且页面显示得很笨拙。

这是我正在使用的jsfiddle。 我正在使用的网页是here

我在哪里犯错误。

到目前为止,我正在使用的jQuery看起来像这样

$(document).ready(function() {
$('.question1').click(function(){
    $('.new_member_box_display').load('#answer1');
})

$('.question2').click(function(){
    $('.new_member_box_display').load('#answer2');
})

$('.question3').click(function(){
    $('.new_member_box_display').load('#answer3');
})

$('.question4').click(function(){
    $('.new_member_box_display').load('#answer4');
})

});//end of ready

我正在使用的HTML看起来像这样:

 <div class="new_member_box">
                            <a href="#" class="question1"><h4>Vision</h4></a>
                        </div>  

                        <div class="new_member_box">
                            <a href="#" class="question2"><h4>Church History</h4></a>
                        </div>  

                        <div class="new_member_box">
                            <a href="#" class="question3"><h4>Becoming a Member</h4></a>
                        </div>  

                        <div class="new_member_box">
                            <a href="#" class="question4"><h4>Pastor-in-Training</h4></a>
                        </div> 
                    </div>
                    <div class="clear" class="question"></div>
                    <div  id="answer1">
                        1
                    </div> 

                    <div  id="answer2">
                        2
                    </div> 

                    <div  id="answer3">
                       3
                    </div> 

                    <div  id="answer4">
                        4
                    </div>   

                    <div class="new_member_box_display" id="question">
                        Text will appear here when one of the tabs above is clicked
                    </div> 

3 个答案:

答案 0 :(得分:4)

load()使用ajax加载外部文件,而不是页面上的元素。你可能只是试图隐藏和显示元素:

$('[class^="question"]').on('click', function(e){
    e.preventDefault();
    var numb = this.className.replace('question', '');
    $('[id^="answer"]').hide();
    $('#answer' + numb).show();
});

FIDDLE

答案 1 :(得分:2)

这是一个小提琴,可以做我认为你想做的事情。有更简洁的方法,但这应该工作。 http://jsfiddle.net/PZnSb/6/

基本上你想将一个元素的内部html设置为另一个元素的内部html,如下所示:

$('.question1').click(function(){
    $('.new_member_box_display').html($('#answer1').html());
})

而不是:

$('.question1').click(function(){
    $('.new_member_box_display').load('#answer1');
})

答案 2 :(得分:1)

您似乎只想在单击时更改文本,请尝试此操作。

   $(document).ready(function() {
   $('.question1').click(function(){
    $('.new_member_box_display').text($('.answer1 ').text());
});

    $('.question2').click(function(){
    $('.new_member_box_display').text($('.answer2').text());
});

    $('.question3').click(function(){
    $('.new_member_box_display').text($('.answer3').text());
});

    $('.question4').click(function(){
    $('.new_member_box_display').text($('.answer4').text());
});
});

http://jsfiddle.net/cornelas/PZnSb/7/embedded/result/