更改切换jquery顶部的文本

时间:2012-07-16 23:05:59

标签: javascript jquery html

我有很多这些,当用户点击最大化时,div会展开以显示内容。内容切换后,可以看到底部最小化的链接。单击该链接时,它将正确切换,我只是想找到一种方法来更改第一个链接中的文本,因为当前jQuery只更改了单击链接的文本。有没有办法轻松做到这一点?使用Parent()然后使用Child()返回顶部a的内容?

切换时,应将 #bridge分别改为+ Expand- Minimize

的javascript

<script type="text/JavaScript" language="javascript">
    $(document).ready(function() {
        $(".expand").click(function(e) {
            e.preventDefault();
            var toggle = $(this).attr('href');

            var txt = $(this).text() == '+ Expand' ? '- Minimize' : '+ Expand';
            $(this).text(txt);
            $(toggle).slideToggle('fast', function() {                

            });

        });
    });
</script>

HTML

<!--Drop Down -->
    <div>
        <b class='bdrround'>
        <b class='bdrround1'><b></b></b>
        <b class='bdrround2'><b></b></b>
        <b class='bdrround3'></b>
        <b class='bdrround4'></b>
        <b class='bdrround5'></b></b>
        <div class='bdrroundfg'>
            <table width='100%' class='pagehead'>
                <tr>
                    <td width='80%' class='pagehead'>
                    <h2><a name='bureau'></a>Approved Bridging Statements (Optional):</h2>
                </td>
                <td width='20%' class='pagehead'>                    
                        <p align='right'><a href='#bridge' id="expand" class='expand'>+ Expand</a></p>                           
                </td>
                </tr>
             </table>
            <div id='bridge' class='faqcontainer' style='display:none;'>
                <p>
                    <b>Operational Direction: </b>These should be used to bring the customer back into the conversation and 
                    to transition into FAQs, Resolving Objections and overall general conversational flow.  
                    These statements are designed to let the customer know that we are listening, that his/her opinion is 
                    important and that we realize the value of that opinion.
                </p>
                <p>
                    <b>BRIDGING STATEMENTS:</b>
                    <ul>
                        <li>Now with that in mind &hellip;</li>
                        <li>That's an excellent question&hellip;</li>
                        <li>I hear what you are saying and&hellip;</li>
                        <li>I can (certainly) understand that and&hellip;</li>
                        <li>That's a very good point&hellip;</li>
                        <li>Please keep in mind&hellip;</li>
                        <li>I can understand your hesitation, but&hellip;</li>
                        <li>I can appreciate that&hellip;</li>
                        <li>Thank you </li>
                        <li>Perfect </li>
                        <li>Great </li>
                        <li>One moment please </li>
                        <li>Excellent</li>
                        <li>That’s great, now&hellip;</li>
                        <li>That’s correct</li>
                        <li>Let me clarify that for you</li>
                    </ul>
                    <span class="note">Note to Rep: </span>Use of Mr. or Ms. can be added throughout the call as appropriate 
                        to help build rapport with the customer.
                </p>
                <p>
                    <span class="note">[Note to Rep: Ensure all service needs are satisfied before offering.]</span>
                </p>
                <p>
                    [<span class="note">Directional:</span> If during the servicing of the call the customer mentioned 
                    they were retired, unemployed, or working less than 30 hours per week, go to: 
                    <a href="#">PS Basic Counter Offer Transition</a>]
                </p>
                <p align='right'><a href="#bridge" id="A2" class='expand'>- Minimize</a></p>
            </div>
            <b class='bdrround'>
            <b class='bdrround5'></b>
            <b class='bdrround4'></b>
            <b class='bdrround3'></b>
            <b class='bdrround2'><b></b></b>
            <b class='bdrround1'><b></b></b></b>
        </div>
        <div class='hrSectDiv'></div>
    </div>

2 个答案:

答案 0 :(得分:1)

请勿使用#some-id href切换元素,而应使用可重复使用的var 全部按钮的公共父级

jsBin demo

  1. 为所有可滑动元素(.slide_content)添加一个班级.faqcontainer(或者只使用.faqcontainer代替上述提法,我不确定它是否为普通班级)

  2. 完成我们必须找到父元素的常见内容: - 使用.closest()两个按钮和-one可滚动内容...太棒了!你有一个!这是<div class='bdrroundfg'> !!!
    我们在var:var common_parent = $(this).closest('.bdrroundfg');

  3. 中使用他

    现在我们只需要为该元素进行jQ检索 - 他的子按钮和他的可滑动内容:

        var slide_content = common_parent.find('.slide_content'); // the added class!
        var all_buttons   = common_parent.find('a.expand');       // both buttons
    

    点击后我们需要切换第一个(.eq(0))按钮的文本

         var txt = $(this).text() === '+ Expand' ? '- Minimize' : '+ Expand';
         all_buttons.eq(0).text(txt); // target only the first one in the collection
    

    您的代码应如下所示:

     $(".expand").click(function(e) {
         e.preventDefault();
         var common_parent = $(this).closest('.bdrroundfg');
         var slide_content = common_parent.find('.slide_content'); // the added class!
         var all_buttons   = common_parent.find('a.expand');   
    
         var txt = $(this).text() === '+ Expand' ? '- Minimize' : '+ Expand';
         all_buttons.eq(0).text(txt);    // toggle text - first button only!     
    
         $(slide_content).slideToggle('fast', function(){
              // do something here...
         });
    
     });
    

答案 1 :(得分:0)

试试这个:

 if (this.id == 'A2') {
     $('#expand').text("+ Expand")
 }

DEMO