2016-12-22 1 views
1

ドロップダウンとテーブルをレンダリングする関数を作成しました。このドロップダウンでは、関数内でテーブルをフィルタリングするために使用する値を取得できます。何らかの理由で、ドロップダウンで何かを再選択したときに更新されません。Javascriptのみ:表をレンダリングするためのドロップダウンとテーブルのレンダリング

ありがとうございます! Displays based on date range それは更新されません。私はドロップダウンから()の値をCONSOLE.LOGとき、それは更新されませんので、列があった:

は、ここではいくつかのスクリーンショットです。それでも15 5と言いますが、2番目のボタンをクリックすると2と表示されます5 enter image description here ドロップダウンで2番目のオプションを選択しました。私はこれをどうやって行うのか分かりません。申し訳ありません、私は初心者です。

//function which we will use to hide and unhide rows 
function toggleClass(element, className, toSet) { 
    element.classList[toSet ? 'add' : 'remove'](className); 
} 
//The table is already rendered and when the buttons on the screen are clicked, this pagination function is called 
function columnPagination(input) { 
    var table = document.getElementById("tablePrint"), 
    dataRows = table.getElementsByTagName('tr'), 
    listHTML = ""; 
    //get date labels for dropdown 
    var filterDateLabels = []; 
    var columns = table.getElementsByTagName('th'); 
    for(var ii = 0; ii < columns.length; ii++){ 
     if(ii%input==0){ 
      filterDateLabels.push(columns[ii].innerHTML.slice(21,33)); 
     } 
     if(ii%input==input-1){ 
      filterDateLabels.push(columns[ii].innerHTML.slice(21,33)); 
     } 
    } 
    //display dropdown with values which you will use to filter the table 
    listHTML += "<select id=\"pagenumber\")>"; 
    for(var ii = 0; ii < filterDateLabels.length; ii++){ 
     listHTML += "<option value = \"" + ii + "\">" + filterDateLabels[ii] + " - "; 
     if(filterDateLabels[ii+1]!= ""){ 
      listHTML += filterDateLabels[ii+1] + "</option>"; 
      ii++; 
     } 
     else{ 
      listHTML+="LAST </select>"; 
     } 
    } 
    document.getElementById('dates').innerHTML = listHTML; 
    var multiplier = document.getElementById('pagenumber').value; 
    multiplier = multiplier/2; 
    if(multiplier == 0){ 
     multiplier = 1; 
    } 
    //hiding function which works but doesn't update when the dropdown is clicked 
    input = input*multiplier; 
    console.log(multiplier, input); 
    for (var i = 0; i < dataRows.length; i++) { 
     var cells = dataRows[i].children; 
     for (var cell = 0; cell < cells.length; cell++) { 
      toggleClass(cells[cell], 'hide', cell > input) 
     } 
    } 
} 
+0

コードを入力してください。 –

+0

@KevinKloet完了!申し訳ありませんが、私のコードは面白いw/oコメントです。私はそれを固定した後、私はそれについてコメントするつもりだった。あなたが望むなら私は最初にコメントすることができます。 –

+0

はい、理解しやすいコメントを追加してください。 –

答えて

0

私はonchange = "myFunction()"を使用してしまいました。

http://www.w3schools.com/jsref/event_onchange.asp

あなたは私がやったのと同じ問題が発生した場合に必要なすべてがそこにあります。間違ったファイルを編集していたので、私は困っていました。 @KevinKloetは別のエラーを指摘することでそれを実現するのを助けました。ありがとう!

関連する問題