2013-07-08 31 views
0

我有一個填充了aaData的數據表。最後一列是action,它再次填充了一個數組。如何從javascript中的數據表中獲取特定的列值

我需要做的是,通過點擊一個動作鏈接,我應該爲該特定行選擇列數組值,在那裏我點擊該動作。

動作列都將填充下面JSON格式

[ 
      { 
       "displayValue":"Browse", 
       "link":"svnpath/BacklogApp", 
       "displayIcon" : "browselogo" 
      }, 
      { 
       "displayValue":"Source Code", 
       "link":"svnpath/BackLog/trunk/webapp-project/", 
       "displayIcon" : "svnlogo" 
      }, 
      { 
       "displayValue":"Contributors: Vaibhav", 
       "link":"#contributors", 
       "displayIcon" : "people" 
      } 
     ] 

這是一個有三個環節我的行動列 - 瀏覽,源代碼和貢獻者。當我點擊貢獻者圖標時,我應該可以得到"Contributors: Vaibhav"這個字符串。

下面是JS代碼

$(document).on('click', '.contributor', function(e) 

    var aPos = tableAADataForContributors.fnGetPosition(this); 
    alert(aPos); 

    //if aPos returns an array in console, use first val at pos zero to get row data 
    var aData = tableAADataForContributors.fnGetData(aPos[0]); 
    alert(aData); 

但警覺,我即將爲空,而tableAADataForContributors不爲空。

此外,這是怎麼了填充數據表

$.ajax({ 
    type: "GET", 
    url: url, 
    dataType: "json", 
    cache: false, 
    contentType: "application/json", 
    success: function(tablePropJSONData) { 
    var oTable = $('#genericTable').dataTable({ 
     "bProcessing": true, 
     "aaData": tableObj, 
     "sPaginationType" : "full_numbers", 
     "bJQueryUI"   : true, 
     "bRetrieve"   : true, 
     "bPaginate"   : true, 
     "bSort"    : true, 
     "aaSorting"   : [[ 2, "desc" ]], 
     "iDisplayLength" : 50, 
     "bAutoWidth"  : false, 
     "bStateSave"  : false, 
     "aoColumns" : tablePropJSONData.aoColumns, 
     "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
      var lastColumnIndex = aData.length-1; 
      var actionColumnContent = renderActionColumn(aData[lastColumnIndex]); 
      $('td:eq('+lastColumnIndex+')', nRow).html(actionColumnContent); 
     } 
    }); 
    tableAADataForContributors = oTable; // initializing for picking up contributors from datatable. 

    searchDataTable(oTable, searchTerm); 
    }, 

而且同樣初始化的全局變量tableAADataForContributors能在onclick事件以後使用它。

我不能這樣做。請有人提出一個JavaScript代碼。

+2

這是更好地看到你的HTML表和JS代碼,你需要獲得一個變量(點擊事件?)上的jsfiddle – FSou1

+0

給你'contributor'的HTML的一個例子。 –

+0

我在問題中添加了JS代碼。 –

回答

1

謝天謝地,我能夠自己解決它。在這裏和那裏只需要一點點。 下面的代碼確實要求

$(document).on('click', '.contributor', function(e){ 
    var aPos = tableAADataForContributors.fnGetPosition($(this).closest('tr')[0]); 

    //if aPos returns an array in console, use first val at pos zero to get row data 
    var aData = tableAADataForContributors.fnGetData(aPos); 

    var actionColumnData = aData[aData.length-1]; 

    $.each(actionColumnData, function(i, value){ 
     alert(value.displayValue) 
    }); 
相關問題