JQuery - как я могу найти, если идентификатор имеет конкретную строку? - PullRequest
15 голосов
/ 13 марта 2009

У меня есть таблица, и я хочу знать, содержит ли ее последний идентификатор идентификатор определенной строки. Например, если мой последний td имеет идентификатор «1234abc», я хочу знать, содержит ли этот идентификатор «34a». И мне нужно сделать это в выражении «если».

if (myLastTdId содержит "blablabla") {сделать что-то}

Спасибо !!!

Ответы [ 4 ]

24 голосов
/ 13 марта 2009

Вы можете использовать селектор " attributeContains ":

if($("#yourTable td:last-child[id*='34a']").length > 0) { 
   //Exists, do something...
} 
9 голосов
/ 13 марта 2009

Это легко сделать с помощью indexOf и 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>

Здесь будет выдано предупреждение «найдено», потому что d появляется в строке cde

1 голос
/ 13 марта 2009

Если ваш td "голый" (то есть не обернутый в объект jQuery), вы можете напрямую получить доступ к его атрибуту id:

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

Если это равно в объекте jQuery, вам сначала нужно его получить:

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

Функция indexOf находит смещение одной строки в другой. Возвращает -1, если первая строка вообще не содержит вторую.

Edit:

Подумав, возможно, вам понадобится уточнить ваш вопрос. Не ясно, с каким из них вы пытаетесь сопоставить «34а»:

  • <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 голосов
/ 13 марта 2009

Не совсем ясно, имеется ли в виду последний тд в каждом тр или самый последний тд:

if ($('#myTable td:last[id*=34a]').length) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...