2009-03-12 7 views

Respuesta

22

Se podría utilizar el "attributeContains "selector:

if($("#yourTable td:last-child[id*='34a']").length > 0) { 
    //Exists, do something... 
} 
+0

Y, si su "algo" se compone de una operación de jQuery, por ejemplo el establecimiento de un css, sólo puede encadenar hasta que - no, si es necesario:. ("td #yourTable: last-child [id * = '34a']") CSS ("color", "rojo"); –

+0

^$ inserción al principio de la expresión 'La –

+0

> 0' parte es redundante. Solo 'element.length' funcionará. –

8

Esto se hace fácilmente con indexOf y last-child.

<table id='mytable'> 
<tr> 
    <td id='abc'></td> 
    <td id='cde'></td> 
</tr> 
</table> 

<script> 
if($('#mytable td:last-child').attr('id').indexOf('d') != -1) { 
    alert('found!'); 
} 
</script> 

Aquí se alertaría encontrado "porque d aparece en la cadena cde

0

Si su td es "desnuda"(es decir, no envuelto en un objeto jQuery), puede acceder a su atributo id directamente:

if (myTD.id.indexOf("34a") > -1) { 
    // do stuff 
} 

Si es en un objeto jQuery, que necesita para conseguirlo, en primer lugar:

if (jMyTD[0].id.indexOf("34a") > -1 { 
    // do stuff 
} 

La función indexOf encuentra el desplazamiento de una cadena dentro de otra. Devuelve -1 si la primera cadena no contiene el segundo en absoluto.

Editar:

Pensándolo bien, es posible que necesite para aclarar su pregunta. No está claro cuál de ellas está tratando de igualar "34a" en contra:

  • <td id="1234abcd">blahblah</td>
  • <td id="blahblah">1234abcd</td>
  • <table id="1234abcd"><tr><td>blahblah</td></tr></table>
  • <table id="blahblah"><tr><td>1234abcd</td></tr></table>
0

No del todo claro si se refiere a la última td en cada tr, o el último td:

if ($('#myTable td:last[id*=34a]').length) { 
    ... 
} 
Cuestiones relacionadas