-1

このコードでは、アンカー タグをクリックすると余分な段落が表示されますが、これらの関数のすべてが煩雑になるため、必要ありません。このコードを 1 つの関数に圧縮する方法を知りたいと思っていました。しかし、より効率的なことをするだけです。

    function showmore1()
            {
                var more_1 = document.getElementById("learnmore_1");
                if (more_1.style.display == "block") 
                {
                    more_1.style.display = "none";
                    document.getElementById('showmore_1').innerHTML ='<a>Even More History</a>';
                }
                else 
                {
                    more_1.style.display = "block";
                    document.getElementById('showmore_1').innerHTML ='<a>Show Less</a>';
                }
                }
    function showmore2()
            {
                var more_2 = document.getElementById("learnmore_2");
                if (more_2.style.display == "block") 
                {
                    more_2.style.display = "none";
                    document.getElementById('showmore_2').innerHTML ='<a>Even More Why programming</a>';
                }
                else 
                {
                    more_2.style.display = "block";
                    document.getElementById('showmore_2').innerHTML ='<a>Show Less</a>';
                }
                }
    function showmore3()
            {
                var more_3 = document.getElementById("learnmore_3");
                if (more_3.style.display == "block") 
                {
                    more_3.style.display = "none";
                    document.getElementById('showmore_3').innerHTML ='<a>Even More Skills</a>';
                }
                else 
                {
                    more_3.style.display = "block";
                    document.getElementById('showmore_3').innerHTML ='<a>Show Less</a>';
                }
            }
    function showmore4()
            {
                var more_4 = document.getElementById("learnmore_4");
                if (more_4.style.display == "block") 
                {
                    more_4.style.display = "none";
                    document.getElementById('showmore_4').innerHTML ='<a>Even More Accomplishments</a>';
                }
                else 
                {
                    more_4.style.display = "block";
                    document.getElementById('showmore_4').innerHTML ='<a>Show Less</a>';
                }
            }
4

3 に答える 3

0
 function showmore(id, moreMessage, lessMessage)
        {
            var more = document.getElementById('more'+id);
            if (more.style.display == "block") 
            {
                more.style.display = "none";
                document.getElementById('showmore_'+id).innerHTML ='<a>'+moreMessage+'</a>';
            }
            else 
            {
                more.style.display = "block";
                document.getElementById('showmore_'+id,).innerHTML ='<a>'+lessMessage+'</a>';
            }
        }
于 2013-05-25T15:34:39.597 に答える
0

関数内で変更されるコード (変数) の一部を取り出してから、機能を結合し、変数を関数に渡して挿入します。

function showmore(id, more, less) {
    var more = document.getElementById('learnmore_'+id);

    if(more.style.display == "block") {
        more.style.display = "none";
        document.getElementById('showmore_'+id).innerHTML ='<a>'+more+'</a>';
    } else {
        more.style.display = "block";
        document.getElementById('showmore_'+id).innerHTML ='<a>'+less+'</a>';
    }
}

次に、次のように使用します。

showmore(1, 'Even more accomplishments', 'Show less');
于 2013-05-25T15:35:13.977 に答える