2017-09-29 16 views
9

मैं div आईडी का उपयोग कर भरा डेटा प्राप्त करने की कोशिश कर रहा हूं लेकिन यह $container.data(...) is undefined फेंक रहा है।हैंडसोटेबल। Div आईडी द्वाराgetData काम नहीं कर रहा है?

<!-- ... --> 
    <div id="app" style="width: 500px; height: 200px;"></div> 
</div> 
<button id="app_id" onclick="json()">Json</button> 

मैं भरा डेटा प्राप्त करने के लिए निम्न कोड की कोशिश की है:

var rowHead = colAr; 
var colHead = dataObj[idname].col; 
var data = [[]], 
    container = document.getElementById("app"), 
    selectFirst = document.getElementById('selectFirst'), 
    rowHeaders = document.getElementById('rowHeaders'), 
    colHeaders = document.getElementById('colHeaders'), 
    hot; 

hot = new Handsontable(container, { 
    minRows:rowHead.length, 
    minCols:colHead.length, 
    startRows: 5, 
    startCols: 5, 
    rowHeaders: rowHead, 
    colHeaders: colHead, 
    contextMenu: false, 
    outsideClickDeselects: false, 
    removeRowPlugin: true 
}); 
hot.loadData(data); 

function json() { 
    var $container = $("#app"); 
    var handsontable = $container.data('handsontable').getData(); 
    console.log(handsontable); 
/* 
    var htContents = hot.getData(); 
    var jsonObj = {}; 
    for (var i = 0; i < htContents.length; i++) 
    { 
    jsonObj[rowHead[i]] = htContents[i]; 
    } 
    console.log(jsonObj); 
*/ 


} 

लेकिन यह त्रुटि फेंक रहा है, के बजाय मैं एक और विकल्प के साथ की कोशिश की:

var cont = hot.getData(); 
console.log(cont); 

यह काम कर रहा है। लेकिन मेरे पास कई टेबल हैं इसलिए मुझे div आईडी का उपयोग करके विशेष तालिका द्वारा डेटा प्राप्त करने की आवश्यकता है, मेरे कोड में समस्या क्या है?

+3

क्या आपने '# एप' पर 'हैंडोंटेबल()' को तुरंत चालू किया है? 'गर्म' क्या है? कंसोल में कोई त्रुटि? आपकी मदद करने में सक्षम होने के लिए हमें आपके कोड का अधिक से अधिक देखना होगा। –

+0

क्या आपने डेटा सेटर बनाया है? –

+0

@RoryMcCrossan पोस्ट संपादित किया गया। कंसोल में यह 'कंटेनर डाटा फेंक रहा है (...) अपरिभाषित है 'त्रुटि। – mkHun

उत्तर

3

अंत में जवाब मिल गया

$('#app .ht_master tbody td').each(function(){ 
    var text = $(this).text(); 
}); 
0

.loadData के बजाय .handsontable() का उपयोग करें।

HTML:

<div id="app"></div> 
<a href="javascript:void(0)" id="app_id">Json</a> 

JavaScript:

$(document).ready(function(){ 
var data = [[]], 
    container = document.getElementById("app"), 
    hot; 

hot = { 
     data:data, 
    minRows:15, 
    minCols:6, 
    startRows: 5, 
    startCols: 5, 
    contextMenu: false, 
    outsideClickDeselects: false, 
    removeRowPlugin: true 
}; 

$('#app').handsontable(hot); 
//hot.loadData(data); 

$('#app_id').on('click',function(){ 
debugger 
var result = $('#app').data('handsontable').getData(); 
}); 
}); 

Follow This Fiddle

संबंधित मुद्दे