2009-03-12 34 views
12

Tôi có một bảng và tôi muốn biết liệu id cuối cùng của nó có chứa một chuỗi nhất định hay không. Ví dụ: nếu td cuối cùng của tôi có id "1234abc", tôi muốn biết id này có chứa "34a" hay không. Và tôi cần làm điều đó trong câu lệnh 'if'.jQuery - làm thế nào tôi có thể tìm thấy nếu một id có một chuỗi cụ thể?

nếu (myLastTdId chứa "blablabla") {do something}

Cảm ơn !!!

+0

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

Trả lời

22

Bạn có thể sử dụng "attributeContains "công cụ chọn:

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

Và, nếu "cái gì đó" của bạn bao gồm một hoạt động jQuery, nói rằng thiết lập một css, bạn chỉ có thể chuỗi nó lên - không nếu cần thiết: ("#yourTable td: cuối cùng con [id * = '34a']"). css ("màu", "đỏ"); –

+0

^chèn $ vào đầu biểu thức –

+0

Phần '> 0' là dư thừa. Chỉ 'element.length' sẽ hoạt động. –

8

Điều này có thể dễ dàng thực hiện với indexOflast-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> 

Ở đây nó sẽ cảnh báo 'thấy' vì d xuất hiện trong chuỗi cde

0

Nếu td của bạn là "trần" (tức là không được bọc trong một đối tượng jQuery), bạn có thể truy cập vào thuộc tính id của nó trực tiếp:

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

Nếu nó trong một đối tượng jQuery, bạn sẽ cần phải nhận được nó ra đầu tiên:

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

Chức năng indexOf tìm thấy độ lệch của một chuỗi trong chuỗi khác. Nó trả về -1 nếu chuỗi đầu tiên không chứa ký tự thứ hai.

Edit:

Ngày nghĩ thứ hai, bạn có thể cần phải làm rõ câu hỏi của bạn. Nó không phải là rõ ràng mà các bạn đang cố gắng để phù hợp với "34a" chống lại:

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

Không hoàn toàn rõ ràng nếu bạn có ý nghĩa td cuối cùng trong mỗi tr, hoặc td cuối cùng:

if ($('#myTable td:last[id*=34a]').length) { 
    ... 
} 
Các vấn đề liên quan