如何使用 JQuery/CSS 选择所有以某个单词开头、包含或结尾的单元格?

Posted

技术标签:

【中文标题】如何使用 JQuery/CSS 选择所有以某个单词开头、包含或结尾的单元格?【英文标题】:How to select all cell starting, containing or ending with some word with JQuery/CSS? 【发布时间】:2015-12-20 19:59:15 【问题描述】:

我在表格中有一些这样的单元格,想用 JQuery 选择它吗?

例如:

<td>John Doe</td>
<td>John Doe1</td>
<td>1John Doe</td>

我要选择 - 从1 开始,包含Doe 并以1 结束。

我如何使用 Jquery?

【问题讨论】:

是的,你可以;你有尝试过吗?你看过documentation吗?您拥有近2000名声望,并在这里工作了4年;您现在必须知道该网站的运作方式以及我们对您的期望? 是的,例如在这个w3schools.com/cs-s-ref/css_selectors.asp 我相信@DavidThomas 要求您付出一些努力并向我们展示您的尝试,以便我们凭良心帮助您解决问题,而不是为您解决问题。 我不需要知道你读过什么来回答这个问题;我的意思是需要尝试一下。如果它不起作用,好的,再试一次;如果它仍然不起作用并且您不明白为什么,那么请:回到我们身边,向我们寻求帮助,向我们展示您的尝试。向我们展示您已尝试通过可靠的努力解决自己的问题。 网上有很多很多关于如何过滤表格的例子。至少尝试一下 【参考方案1】:

您可以使用正则表达式。这两个正则表达式检查文本是否包含“John”(任何地方)并以“1”结尾:

$('#myTable').find('td').each(function() 
    var str = $(this).text();
    if (str.match("John") && str.match("1$") ) 
        $(this).css('background', 'red'); // ...or do something else with it.
    
);

【讨论】:

这是一个循环元素的想法,我在 XPath 中不擅长,我仍然认为我不能像这样 [name^="1"] 或 [name*="1" ] 或 [name$="1"] 喜欢用于属性,但用于文本但可能是不可能的。 如果这就是你的意思,那么没有这样的 CSS 选择器。有一个想法,在某个时候,将它包含在 CSS3 中,但出于某种原因他们放弃了它。使用 jQuery,您可以检查任何标签是否包含特定文本,如 $('td:contains("John")'),但据我所知,它是否以特定字符/字符串结尾。 感谢您的帮助,我使用 jQuery 完成了迭代代码,因为您建议我将匹配更改为搜索,因为它更快,并且在搜索之前添加了 600 毫秒的延迟 - 列表很长,所以它比延迟慢。今天我尝试在可见元素上面对 nth-child() 。在 css 中看起来还没有完成。

以上是关于如何使用 JQuery/CSS 选择所有以某个单词开头、包含或结尾的单元格?的主要内容,如果未能解决你的问题,请参考以下文章

LINQ:选择任何字符串以某个字符开头的行

jQuery或CSS选择器选择以某个字符串开头的所有ID [重复]

查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中

jQuery - 如何使用元素的 HTML 获取所有样式/css(在内部/外部文档中定义)

如何在 jQuery.css() 方法中为所有浏览器编写 CSS?

使用通配符选择所有以 XXX 开头的列?