0
 var header = $("#accordion");

            $.each(data, function () {
                header.append("<a id='Headanchor' href='javascript:toggleDiv($(this));'>" +   this.LongName + "</a>" + "<br />",
                "<div id='myContent' style='display:none'>" +
                "<ul>" +
                "<li>" + "ID: " + this.Id + "</li>" +
                "<li>" + "Short Name: " + this.ShortName + "</li>" +  "</ul>" + "</div>"
                );


                function toggleDiv(element) {
       var x = element.next();
       x.toggle();

       <div id="accordion">

</div>

最初に1つのdivのみの作業スクリプト

function toggleDiv() {

              $("#myContent").toggle();

}

どのアンカータグがクリックされたかに応じてdivを切り替えたいのですが、できません。id セレクターを使用すると、最初の div が切り替えられますが、残りの div は切り替えられません。同じ id を取得するため、長い..誰かがこれで私を助けてくれます..

4

2 に答える 2

1

Injavascript:toggleDiv($(this)) thisは、オブジェクトではなくウィンドウを指しています。JSフィドルを参照してください。したがって、以下のコードを変更します。

"<a id='Headanchor' href='javascript:toggleDiv($(this));'>"

に:

"<a id='Headanchor' href='#' onclick='return toggleDiv($(this));'>"

および JS コード:

function toggleDiv(element) {
       var x = element.next();
       x.toggle();
       return false;
}

さらに、ID は一意である必要があり、コードには複数の Headanchor 要素が含まれます。

于 2012-10-18T18:39:43.383 に答える
0

すべてを非表示にし、アプローチしたいものだけを表示します。

$('#accordian>div').hide()      // hide all divs within the accordian
  .find('#selectedId').show();  // then show the one that matches the ID you want

しかし、車輪の再発明の手間を省き、 jQueryUIを使用してください。

于 2012-10-18T18:35:44.830 に答える