Неопределенное значение JQuery - PullRequest
0 голосов
/ 29 июня 2011

У меня есть динамическая таблица с каждой строкой, имеющей 4 столбца.

  • В столбце 1 есть метка.
  • В столбце 2 есть тип ввода = текст класса gvRate.
  • В столбце 3 есть тип ввода = текст класса gvMax.
  • В столбце 4 есть изображение кнопки с атрибутом имени идентификатора записи.

Я пытаюсь выяснить значения входов при нажатии кнопки, но предупреждениечто-то вроде "3 неопределенных неопределенных".Я знаю, что не правильно использую один из селекторов, но не знаю, какой именно.

Вот код:

    $(document).ready(function() {
     $("img.btnUpdate").click(function(){
     var id = $(this).attr("name");
     var rate = $(this).parent().find(".gvRate").val();
     var max = $(this).parent().find(".gvMax").val();
     alert(id + ' ' + rate + ' ' + max);
     }); // end btnUpdate click
}); // end document.ready function

Вот HTML (вроде)

     <div id="editInnerContent">    
      <table id="gvEdit" align="center" border="1" cellpadding="5px" style="width:600px;">
   <tr>
        <th style="width:40%;text-align:center;">ITEM</th>
        <th style="width:20%;text-align:center;">RATE</th>
        <th style="width:20%;text-align:center;">MAX</th>
        <th style="width:20%;"></th>
   </tr>

     <?php
 foreach( $globalVars as $arrGV){
      echo "<tr>";
      echo "<td><label class='gvItem'>" . $arrGV['item'] . "</label></td>";
      echo "<td><input type='text' class=gvRate' value='" . $arrGV['rate'] . "' /></td>";
      echo "<td><input type='text' class=gvMax' value='" . $arrGV['max'] . "' /></td>";
      echo "<td style='text-align:center;'><img class='btnUpdate' name='" . $arrGV['id'] . "' src='" . base_url() .  "images/update.png' /></td>";
      echo "</tr>";
 } // end foreach
   ?>
      <tr>
   <td colspan="3">
        &nbsp;
   </td>
      </tr>
      <tr style="background:#DC241F;">
   <td colspan="4" style="text-align:center;">
        <img id="btnExitGlobalValues" src="<?php echo base_url();
            ?>images/exitGlobalValues.png" />
   </td>
      </tr>
      </table>
 </div> <!-- END editInnerContent DIV -->

1 Ответ

1 голос
/ 29 июня 2011

Если это настоящая таблица HTML, вам нужно подняться на два уровня родительского элемента.

Первый вызов .parent() приведет вас к <td>, а затемвам нужен еще один, чтобы добраться до <tr>.

Альтернативно используйте:

$(this).closest('tr').find(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...