如何使用 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 选择所有以某个单词开头、包含或结尾的单元格?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery或CSS选择器选择以某个字符串开头的所有ID [重复]
查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中
jQuery - 如何使用元素的 HTML 获取所有样式/css(在内部/外部文档中定义)