2009-03-12 9 views
12

Mam tabelę i chcę wiedzieć, czy jej ostatni identyfikator td zawiera pewien ciąg znaków. Na przykład, jeśli mój ostatni identyfikator ma identyfikator "1234abc", chcę się dowiedzieć, czy ten identyfikator zawiera "34a". I muszę to zrobić w oświadczeniu "jeśli".jQuery - jak mogę znaleźć, jeśli id ​​ma określony ciąg?

if (myLastTdId zawiera "blablabla") {coś zrobić}

Dzięki !!!

+0

http://stackoverflow.com/a/5866314/900284 –

Odpowiedz

22

Mogłeś użyć "attributeContains "selektor:

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

A jeśli „coś”, składa się z operacja jQuery, powiedzmy ustawienie css, możesz po prostu powiązać - nie, jeśli jest to wymagane: ("#twojTabel td: last-child [id * = '34a']"). css ("color", "red"); –

+0

^wstaw $ na początku wyrażenia –

+0

Część '> 0' jest zbędna. Po prostu 'element.length' zadziała. –

8

Można to łatwo zrobić za pomocą indexOf i 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> 

Tutaj ostrzeże „znaleziono” bo d pojawia się w ciągu cde

0

Jeśli td jest „nagi” (to znaczy nie owinięty w obiekcie jQuery), można uzyskać dostęp do jego atrybut id bezpośrednio:

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

Jeśli jest w obiekcie jQuery, musisz dostać się najpierw:

Funkcja indexOf znajduje przesunięcie jednego ciągu w drugim. Zwraca -1, jeśli pierwszy łańcuch nie zawiera drugiego.

Edit:

Na drugim myśli, być może trzeba wyjaśnić swoje pytanie. Nie jest jasne, które z nich starasz się dopasować "34a" przeciw:

  • <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

Nie całkowicie jasne, czy chodziło Ci ostatni td w każdym tr lub ostatniej TD:

if ($('#myTable td:last[id*=34a]').length) { 
    ... 
} 
Powiązane problemy