jQuery - извлечение данных ячейки из таблицы. - PullRequest
1 голос
/ 19 мая 2011

Мне нужна помощь в извлечении данных ячейки из таблицы, когда пользователь нажимает кнопку в конце строки таблицы. Таблица генерируется с помощью техники Ajax. Я не уверен, имеет ли это значение при доступе к элементам таблицы.

<script type='text/javascript' src='jquery.js'></script> 
  <p>** click me **</p>
  <br/>
  <div id="placeHolder">some text goes here!</p>
<script>
    $("p").click(function () { 

        $.ajax({
          url: "status_2.html",       
          cache: false,
          success: fnSuccess
          }
        );
    });

   function fnSuccess(msg)
    {
        $('div#placeHolder').html(msg);
    }

function selectEditActivity(pass_id){   
    var row = $('#'+pass_id); 
    var seq = row.attr('seq');      
    // here I would like to pull the value of the date from the selected row
    // but I just can't get syntax right.  I get a null value on alert
    var from_date   = $('td', row).eq(0).html();  
    alert(from_date);
}
</script>

Это HTML-код, который читается в (файл: status_2.html)

  <span id="status2"> 
  <span id="response" class="response"></span>

  <table class="tableBorder">
  <tr >
   <th class="align_left">Date</th>
  </tr><tr>

  <tr seq="1" class="row_theme2" id="id3014201105191"></tr>
    <tr><td>20090519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>
   <td><a onclick="selectEditActivity('id3014201105191');" href="#">EDIT</a></td>
 </tr>

  <tr seq="2" class="row_theme2" id="id3014201105192"></tr>
    <tr><td>20100519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>   
   <td><a onclick="selectEditActivity('id3014201105192');" href="#">EDIT</a></td>
 </tr>

  <tr seq="3" class="row_theme2" id="id3014201105193"></tr>
    <tr><td>20110519</td>
    <td>1330</td>
  <td>1430</td>
  <td>LUNCH</td>  
   <td></td>   
   <td><a onclick="selectEditActivity('id3014201105193');" href="#">EDIT</a></td>
 </tr>
</tbody></table>

1 Ответ

2 голосов
/ 19 мая 2011

Изменить это:

var from_date = $('td', row).eq(0).html();  

к этому:

var from_date = row.next().children('td').eq(0).html();

... потому что информация, которую вы ищете, находится в следующем ряду от той, которая содержит идентификатор. Строка с идентификатором не имеет элементов <td>.

Live Пример: http://jsfiddle.net/kkP56/


РЕДАКТИРОВАТЬ: Вы можете избавиться от встроенных обработчиков onclick и позволить jQuery назначать обработчики, если хотите.

$(function() {

    $('table tr a').click(function() {
        var from_date = $(this).parent().prevAll().last().html();
        alert( from_date );
    });

});
...