2012-03-27 6 views
0

私はJavaScriptの初心者ですが、特定のクラブに加わった人を追跡するための2つの関数を書いています。 JavaScript関数は、現在のメンバシップを表示するために、特にメンバが削除された場合、ページを継続的にリロードすることになっています。私が書いたJavaScriptでページをリロードして新しいリストを表示する方法

2つの関数は、次のとおりです。

function show_remove() 
{ 
var r=confirm("Press OK to remove or CANCEL to undo."); 
if (r==true) 
    { 
    alert("Removed"); 
    } 
else 
    { 
    alert("Member still part of club"); 
    } 
} 

そして

function members() 
    { 
     var i; 
     for (i=0; i<mems.length; i++) 
     { 
      if (mems[i].isMemberofClub) 
      { 
       var link = '<a href=' + mems[i].l + '>' + mems[i].n + '</a>'; 
       document.write(link) 
      } 
     } 
    } 

理想的には管理者が誰かを削除するには、ボタンをクリックしたときになるように、この2つの関数は、何らかの方法でリンクされている必要があり、 isMemberofClubがfalseになり、その人物がメンバーのリストから削除されます。ページに更新されたリストが表示されます。しかし、私はいくつかの組み合わせを試してみましたが、私が試してもリストを更新できません。前もって感謝します。

答えて

1

あなたのページのHTMLには、それはそれの内容を変更するようにあなたが次にあなたのjavascript機能を変更するには、この

<div id='members'></div> 

状部材のidを持つDIVを作成する必要がありますが代わりに文書を使用してのDIV 。書きます。私はまたそれがすべてリフレッシュされるように開始する前に空に設定します。それはあなたがDIVの内容を更新するために、あなたのmembers()関数を呼び出す必要があり、それらを削除したときに、メンバーを削除し、あなたの関数で

function members() 
{ 
    var i; 
    document.getElementById("members").innerHTML = ""; 
    for (i=0; i<mems.length; i++) 
    { 
     if (members[i].isMemberofClub) 
     { 
      var link = '<a href=' + mems[i].l + '>' + mems[i].n + '</a>'; 
      document.getElementById("members").innerHTML += link + '<br />'; 
     } 
    } 
} 

+0

私は以前これを試しましたが、何らかの理由でメンバーの一覧が画面に表示されないため、document.write()に切り替えました。これがうまくいかない理由はありますか? – user1111042

+0

よくdocument.writeはあなたの問題には実際には当てはまりません。なぜなら、ページが読み込まれた後に呼び出され、ページが静的になったことを意味する(JavaScriptを含む)そのページ上のすべてのものを上書きします。あなたはあなたのコードをすべて上書きする可能性がある他の場所でdocument.writeを使用していますか? – Timm

+0

いいえ、私はdocument.write()を使用していませんが、リストは表示されません。 – user1111042

0
window.location.reload(); // <-- reloads window 
0

==の代わりに===を使用してください。また、forループでfor(i = 0, max = mems.length, i < max, i++)の長さをvar memsでキャッシュする必要があります。もちろん、ループの外側に宣言されています。

関連する問題