jQuery - 如何查找一个id是否包含特定的字符串?

17

我有一个表格,想知道它的最后一个td元素的id是否包含特定字符串。

例如,如果我的最后一个td的id为"1234abc",我想知道这个id是否包含"34a"。

我需要在'if'语句中进行判断。

如果(myLastTdId 包含 "blablabla"){ 做某事 }

谢谢!


https://dev59.com/z3RB5IYBdhLWcg3weXOX#5866314 - Frank Myat Thu
4个回答

25
你可以使用 "attributeContains" 选择器:
if($("#yourTable td:last-child[id*='34a']").length > 0) { 
   //Exists, do something...
} 

如果你的“something”包含一个jQuery操作,比如设置css样式,你可以直接链式调用它——不需要if语句:("#yourTable td:last-child[id*='34a']").css("color", "red"); - Chris Hynes
^在表达式开头插入$符号 - Chris Hynes
> 0 部分是多余的。只需要 element.length 就可以了。 - Eichhörnchen

12

使用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>

这里会弹出“found”,因为d出现在字符串cde中。


2

不是很清楚你的意思,是每个tr中的最后一个td,还是整个表格的最后一个td:

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

2

如果您的td是“裸”的(即没有包装在jQuery对象中),则可以直接访问其id属性:

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

如果它在jQuery对象中,您需要先将其取出:

if (jMyTD[0].id.indexOf("34a") > -1 {
    // do stuff
}
indexOf函数用于在一个字符串中查找另一个字符串的偏移量。如果第一个字符串根本不包含第二个字符串,则返回-1。 编辑: 想了一想,您可能需要澄清您的问题。不清楚您是要将“34a”与以下哪个匹配:
  • <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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接