2016-07-01 14 views
-1

enter image description here 変数にロードされたJSONの後に親テーブルが1つ生成されます。私はクラスの列の "2A"をクリックし、その値、すなわち変数 "2A"を次に対応する行の2番目の列、すなわち列車番号、すなわち別の変数に格納する列車番号、すなわち19806を格納するためにクリックします。クリックした要素の親親テーブルの値を取得できません。

私のコードは、現在、私は

$(this).parent().parent().find('td.two').text(); 

が、運を使用しています

<table width='99.6%'><tbody><tr>"+ "<td align='center' width='75%'><div id='detail_name'>Found "+trndata.total+" Trains between "+document.saform1.safrom.value+" and "+document.saform1.sato.value+" station</div></td>"+ 
"<td align='center' width='25%'><div id='div1_toolbar'><table style='font-size: 12px;' width='100%'><tbody><tr>"+ 
"</td><td align='center' class='cls_toolbar'> <a style='color: white; text-decoration: none;' href='#' onclick='javascript:h2i(); return false;' id='imglnk'>Save Image</a>"+ 
"</td><td align='center' class='cls_toolbar'> <a style='color: white; text-decoration: none;' href='#' onclick='javascript:h2p(); return false;' id='pdflnk'>Save PDF</a>"+ 
"</td><td align='center' class='cls_toolbar'> <a style='color: white; text-decoration: none;' href='#' onclick='javascript:window.print(); return false;' id='printlnk'>Print</a>"+ 
"</td></tr></tbody></table></div></td>"+ 
"</tr></tbody></table>"+ 
"<div class='datagrid'>"+ 
"<table><thead><tr>"+ 
"<th>S No</th><th>Train Number</th><th>Train Name</th><th>Source</th><th>Departure</th><th>Destination</th><th>Arrival</th><th>Travel Time</th><th>Day Run</th><th>Classes</th>"+ 
"</tr></thead>"+ 
"<tbody id='alstn'></tbody>"+ 
"<tfoot><tr><td colspan='10'><div id='no-paging'>Disclaimer: This application is for information purpose only. For latest updates refer to <a target='_blank' href='http://www.indianrail.gov.in'>Indian Railway</a> website. © Copyrights to <a target='_blank' href='http://digitzz.blogspot.com'>Digitzz</a> and it's author <a target='_blank' href='http://digitzz.blogspot.com/p/about.html'>Ravindra Gupta</a></div></tr></tfoot>"+ 
"</table></div>"); 

//fetching all station details 
    for (var i = 0; i < trndata.total; i++) {  

    if (i%2 == 0) 
    { 
    $('#alstn').append("<tr><td>" + (i+1) + 
         "</td><td>" + trndata.train[i].number + 
         "</td><td>" + trndata.train[i].name + 
         "</td><td>" + trndata.train[i].from.name + 
         "</td><td>" + trndata.train[i].src_departure_time + 
         "</td><td>" + trndata.train[i].to.name + 
         "</td><td>" + trndata.train[i].dest_arrival_time + 
         "</td><td>" + trndata.train[i].travel_time + 
         "</td><td>" + "<div width='auto' id=day"+(i)+"></div>" + 
         "</td><td>" + "<div width='auto'id=clss"+(i)+"></div>" + 
         "</td></tr>"); 

         document.getElementById('day'+i).innerHTML = ("<table><tbody><tr id='dayadd"+i+"'></tr></tbody></table>"); 
         for (var j = 0; j < trndata.train[i].days.length; j++) { 

         if(trndata.train[i].days[j].runs == 'Y') { 
          if (trndata.train[i].days[j]['day-code'] == "MON") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>M</span></td>"); 
          } 
          else if (trndata.train[i].days[j]['day-code'] == "TUE") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>T</span></td>"); 
          } 
          else if (trndata.train[i].days[j]['day-code'] == "WED") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>W</span></td>"); 
          } 
          else if (trndata.train[i].days[j]['day-code'] == "THU") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>T</span></td>"); 
          } 
          else if (trndata.train[i].days[j]['day-code'] == "FRI") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>F</span></td>"); 
          } 
          else if (trndata.train[i].days[j]['day-code'] == "SAT") 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>S</span></td>"); 
          } 
          else 
          { 
          $('#dayadd'+i).append("<td><span style='color:#009933;'>S</span></td>"); 
          } 
         } 
         else 
         { 
         $('#dayadd'+i).append("<td><span style='color:#ff0000;'>"+"X"+"</span></td>");      
         } 
         }   

         document.getElementById('clss'+i).innerHTML = ("<table><tbody><tr id='classadd"+i+"'></tr></tbody></table>"); 
         for (var k = 0; k < trndata.train[i].classes.length; k++) { 

         if(trndata.train[i].classes[k].available == 'Y') { 
         $('#classadd'+i).append("<td><b><a href='#' onclick='' id='daysids"+i+"'>"+trndata.train[i].classes[k]['class-code']+"</a></b></td>"); 
         } 
         else 
         { 
         $('#classadd'+i).append("<td>"+"X"+"</td>");      
         } 
         } 
    } 

です。この関数は各行に必要です。

pls help。

+0

シェア –

+0

'$(この).closest( 'テーブル')に最も近い( 'trが')を見つけるのマークアップ( 'td.two')テキスト();。。。' –

答えて

1

「祖父母」のようなものではありません。「2A」の祖先は、おそらく内部セル、内部行、内部tbody、内部テーブル、div、親セル、親行、親tbody、親テーブルのようです。

これを行う最も適切な方法は、.closestを使用することです。
たとえば、祖先ツリーで親divを見つけて親の行を探したい場合があります。ちょうどのようなもの:

このクエリは正確ではありませんし、あなたのイメージに基づいています。ここにHTMLを投稿すると、より正確になります。

関連する問題