2

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

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

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

我在哪里犯错误。

到目前为止,我正在使用的 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> 
4

3 回答 3

4

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

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

小提琴

于 2013-05-06T21:12:56.507 回答
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');
})
于 2013-05-06T21:32:22.260 回答
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/

于 2013-05-06T21:52:23.213 回答