Domanda

$(function(){
  $('.swaction').click(function(event){
    var num = $(this).parent().parent().children().first().children.first().val();
    alert(num);
    event.preventDefault();
  });
})

<table class="table-a" id="unrecognizedPDF">
  <thead>
    <tr>
      <th>Nombre de archivo</th>
      <th>Fecha de creación</th>
      <th>Acciones</th>
     </tr>
   </thead>
<tbody>
  <tr>
   <td>12313242122333</td>
   <td>07/06/2013 10:52:52</td>
   <td><a href="#" data-action="ver" class="swaction">Ver</a> |
       <a href="#" data-action="renombrar" class="swaction">Renombrar</a> |
       <a href="#" data-action="ver" class="swaction">Eliminar</a>
   </td>
  </tr>
 </tbody>
 </table>

I want to get this number: 12313242122333

I tried this: var num =

$(this).parent().parent().children().first().children.first().val();

but Firebug says it's not a function. Any clue on what is wrong? This is the first time I try to traverse the tree.

Thanks!

Error:

TypeError: $(...).parent(...).parent(...).children(...).first(...).children.first is not a function
http://192.168.100.196/printbox/js/js_procesar_escaneos.js
Line 3
È stato utile?

Soluzione

Use var num = $(this).closest('tr').find('td:first').html(); instead.

jsFiddle example

.val() is for input elements, you want to get the HTML which you'd use .html() for.

Altri suggerimenti

You can't use .val() on td element, it's for form element. try .text()

$(this).parent().parent().children().first().text();
children.first()

You're trying to call the first() method of the children function.

You need to call the children function using parentheses.

$(this).closest('tr').find('td:first').html();

Try this.

Use html instead of val

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top