javascript - Uncaught TypeError: Cannot read property 'xxxx' of undefined, But it's defined -
i having trouble problem hours ago. wrote these in jquery function check value in variable if it's exist or not.
console.log("in tr"); console.log(tmproomlistarray[c].room_name); let roomname = tmproomlistarray[c].room_name;
when ran , looked @ google chrome console. shows results this.
rome <<< in console.log shows valid value in tr uncaught typeerror: cannot read property 'room_name' of undefined << happen when assign in variable , need
what happen ?? i'm blind right now..
edit : edit question content
i solved it. silly problem overlooked. it's array index.
i put
tmproomlistarray[c-1]
into function , worked. think solution rest more, see problem more clearly.
for want know happen read below.
i got function insert row in table, , function have 2 parameters, array. function insert row continuously table. won't stop until reach end of array.
var day = ["1","2","3"]; var room = ["room1","room2","room3",....,"room16"] // 16 elements; var timeforheader = ["08:00","09:00",....."20:00"] // 25 elements; function addrow(paramday,paramroom){ // function create many rows depends on paramroom length , columns depends on length of time header. var daylength = day.length; var roomlength = room.length; var timeforheaderlength = timeforheader.length; for(var = 0; < daylength; i++) { // rows for(var c = 0; c < timeforheaderlength+1; c++) { // made c +1 timeforheaderlength because want header //this column if(c == 0) { // if c == 0 mean insert header row element in table var tr = $("<tr/>"); var td = $("<td/>",{text:timeforheader[0]+" - "+timeforheader[1]}).appendto(tr); ... ... var td23 = $("<td/>",{text:timeforheader[23]+" - "+timeforheader[24]}).appendto(tr); $("#mytableid").append(tr); }else{ // row contain room's name , content // , part cause me problem. // in else condition c must 1-17 when access tmproomlistarray contains 16 element // right guys should know right. tmproomlistarray's index must 0 - 16 // worked when c between 1 - 16, didn't work on last c cause c equal 17 console.log(tmproomlistarray[c].room_name); let roomname = tmproomlistarray[c].room_name; //it should let roomname = tmproomlistarray[c-1].room_name; // hahahahahahahahahahahahahahahahahhaha } } } }
Comments
Post a Comment