回答(15)

2 years ago

您可以匹配元素,元素中属性的名称以及元素中命名属性的值 . 但是,我没有看到任何元素内的匹配内容 .

2 years ago

使用jQuery:

$('td:contains("male")')

2 years ago

看起来他们正在考虑CSS3规范 but it didn't make the cut .

2 years ago

您必须向名为 data-gender 的行添加数据属性,并使用 male 或 female 值并使用属性选择器:

HTML:

...

CSS:

td[data-gender="male"] { ... }

2 years ago

实际上有一个非常概念性的基础,为什么没有实现这一点 . 它基本上是3个方面的组合:

元素的文本内容实际上是该元素的子元素

您无法直接定位文本内容

CSS不允许使用选择器提升

这三个一起意味着,当您拥有文本内容时,您无法提升回包含元素,并且您无法设置当前文本的样式 . 这可能很重要,因为降序只允许单一跟踪上下文和SAX样式解析 . 涉及其他轴的升序或其他选择器引入了对更复杂的遍历或类似解决方案的需求,这将使CSS的应用极大地复杂化 .

2 years ago

您可以将内容设置为数据属性,然后使用attribute selectors,如下所示:

/* Select every cell containing word "male" */

td[data-content="male"] {

color: red;

}

/* Select every cell starting on "p" case insensitive */

td[data-content^="p" i] {

color: blue;

}

/* Select every cell containing "4" */

td[data-content*="4"] {

color: green;

}

Peter male 34
Susanne female 14

您还可以使用jQuery轻松设置数据内容属性:

$(function(){

$("td").each(function(){

var $this = $(this);

$this.attr("data-content", $this.text());

});

});

2 years ago

我担心这是不可能的,因为内容不是属性,也不能通过伪类访问 . 可以在the CSS3 specification中找到CSS3选择器的完整列表 .

2 years ago

对于那些希望进行Selenium CSS文本选择的人来说,这个脚本可能有些用处 .

诀窍是选择您要查找的元素的父级,然后搜索具有该文本的子级:

public static IWebElement FindByText(this IWebDriver driver, string text)

{

var list = driver.FindElement(By.CssSelector("#RiskAddressList"));

var element = ((IJavaScriptExecutor)driver).ExecuteScript(string.Format(" var x = $(arguments[0]).find(\":contains('{0}')\"); return x;", text), list);

return ((System.Collections.ObjectModel.ReadOnlyCollection)element)[0];

}

如果有多个元素,这将返回第一个元素,因为在我的情况下,它总是一个元素 .

2 years ago

由于CSS缺少此功能,您必须使用javascript按内容设置单元格样式 . 例如,包含xpath

var elms = document.evaluate( "//td[contains(., 'male')]" ,node, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null )

然后像这样使用结果:

for ( var i=0 ; i < elms.snapshotLength; i++ ){

elms.snapshotItem(i).style.background = "pink";

}

2 years ago

@ voyager关于使用 data-* 属性的答案(例如 data-gender="female|male" 是截至2017年最有效且符合标准的方法:

[data-gender='male'] {background-color: #000; color: #ccc;}

几乎可以实现大多数目标,因为有一些虽然有限的选择器围绕文本 . ::first-letter是pseudo-element,可以将有限样式应用于元素的第一个字母 . 除了明显选择元素的第一行(例如段落)之外,还有一个::first-line伪元素,这也意味着很明显CSS可用于扩展此现有功能以设置textNode的特定方面的样式 .

直到这样的倡导成功并实现了我可以建议的下一个最好的事情是使用空格分隔符来输出 explode / split 单词,输出 span 元素内的每个单词,然后如果单词/样式目标是可预测的,则结合使用:nth selectors:

$p = explode(' ',$words);

foreach ($p as $key1 => $value1)

{

echo ''.$value1.';

}

否则,如果不能预测,再次使用voyager关于使用 data-* 属性的答案 . 使用PHP的示例:

$p = explode(' ',$words);

foreach ($p as $key1 => $value1)

{

echo ''.$value1.';

}

2 years ago

我同意the data attribute(旅行者的回答)应该如何处理,但CSS规则如下:

td.male { color: blue; }

td.female { color: pink; }

通常可以更容易设置,特别是对于像angularjs这样的客户端库,可以简单到:

只要确保内容只有一个字!或者您甚至可以使用以下内容映射到不同的CSS类名:

为了完整性,这是数据属性方法:

2 years ago

th::after { content: attr(data-value) }

td::after { content: attr(data-value) }

td[data-value]:not(:empty) {

color: fuchsia;

}

ZeroWidthSpace用于更改颜色,可以使用vanilla JavaScript添加:

const hombres = document.querySelectorAll('td[data-value="male"]');

hombres.forEach(hombre => hombre.innerHTML = '​');

虽然

的结束标记may be omitted这样做可能会导致它被视为非空 .

2 years ago

这里的大多数答案试图提供如何编写HTML代码以包含更多数据的替代方法,因为至少在CSS3中,您无法通过部分内部文本选择元素 . 但它可以完成后,你只需要添加一些vanilla JavaScript,注意因为女性也包含男性它将被选中:

cells = document.querySelectorAll('td');

console.log(cells);

[].forEach.call(cells, function (el) {

if(el.innerText.indexOf("male") !== -1){

//el.click(); click or any other option

console.log(el)

}

});

Peter male 34
Susanne female 14
Peter male 34
Susanne female 14

2 years ago

例如,这将点击包含单词“Bad bear”的第一个锚点:

browser.click("a*=Bad Bear");

2 years ago

像这样做小的过滤器小部件:

var searchField = document.querySelector('HOWEVER_YOU_MAY_FIND_IT')

var faqEntries = document.querySelectorAll('WRAPPING_ELEMENT .entry')

searchField.addEventListener('keyup', function (evt) {

var testValue = evt.target.value.toLocaleLowerCase();

var regExp = RegExp(testValue);

faqEntries.forEach(function (entry) {

var text = entry.textContent.toLocaleLowerCase();

entry.classList.remove('show', 'hide');

if (regExp.test(text)) {

entry.classList.add('show')

} else {

entry.classList.add('hide')

}

})

})

css选择器包含内容,是否有包含特定文本的元素的CSS选择器?相关推荐

  1. 关于CSS中的下拉表单和文本域元素

    select下拉表单元素: 使用场景:在页面中,如果有多个选项让用户选择,并且想要节约页面空间,可以使用<select>标签控件定义下拉列表. 语法格式: <select>&l ...

  2. 程序说明书主要包含内容

    程序说明书主要包含内容 程序说明书一般包含以下8个方面的内容: 名称.编号 功能 计算方法.模型(算法) 程序内假设的变量.数据源(重要的变量的定义) 处理的流程(根据功能.计算方法.假设的变量,画出 ...

  3. html伪类选择器结构,子元素伪类选择器 - CSS3 | 绿叶学习网

    子元素伪类选择器,指的就是选择某一个元素下的子元素.伪类选择器,相信小伙伴也接触过了,最典型的就是超链接的几个伪类:a:link.a:visited.a:hover.a:active. 在CSS3中, ...

  4. 前端基础知识点整理(html+css+js基础)、不包含框架

    css盒子模型 盒模型都是由四个部分组成的,分别是margin.border.padding和content. ​ 标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同.标 ...

  5. css选择器重点内容

    css选择器:筛选具有相似特征的元素 1. 基本选择器 (*必掌握) id选择器:选择具体的id属性值的元素.id值唯一     ->语法:#id属性值{} class类选择器:选择具有相同cl ...

  6. 如何在Linux上找到包含特定文本的所有文件?

    我正在尝试找到一种方法来扫描整个Linux系统,查找包含特定文本字符串的所有文件. 只是为了澄清,我在文件中寻找文本,而不是文件名. 当我查找如何做到这一点时,我遇到了两次这个解决方案: find / ...

  7. 大众点评店铺详情页评论采集(破解css文字映射反爬,包含项目github 可用时间至2020-01-21)

    在店铺详情页下拉 点击更多点评 才会进入真正的详情页. 在这个页面,使用的是css的文字映射反爬. 分析一下页面 可以看到部分评论的数据是缺失的,跟每个节点的class属性可能有关系 可以打开这个文件 ...

  8. 进阶指令——wc指令【作用:统计文件内容信息(包含行数、单词数、字节数)】、date指令【作用:表示操作时间日期(读取、设置)】、cal指令【作用:用来操作日历的】、clear/ctrl + L指令

    6.wc指令 作用:统计文件内容信息(包含行数.单词数.字节数) 语法:#wc -l                wc 需要统计的文件路径 -l:表示lines,行数 -w:表示words,单词数 ...

  9. 接口包含内容概述2——委托与事件之惑

    前言: 上篇博文<接口包含内容概述1--接口相关概述及接口中属性的实现>最后留有一疑问:一个接口为什么可以包含一个事件,却不能包含一个委托呢? 在这里要想对这个问题解答,首先必须搞清楚委托 ...

最新文章

  1. CTFshow 命令执行 web52
  2. rac环境改动spfile后遭遇ora-29250小例
  3. SpringBoot使用CommandLineRunner和ApplicationRunner项目初始化事件
  4. java dao模式_Java DAO 模式
  5. 网络资源(1) - Hadoop视频
  6. 模板能够让我们花更少的时间,得到更多的东西
  7. SQL经典面试50题 | 附答案
  8. xmpp 即时通讯协议研究
  9. lumaqq receiver
  10. 【愚公系列】2022年04月 微信小程序-image图片
  11. 第十章 VLAN间路由
  12. 关于字符串的长度和大小的定义
  13. adb快速截图小脚本
  14. 计算机程序运行异常处理,Win7电脑运行程序出现appcrash错误怎么解决?
  15. 怎么添加校园邮箱到Outlook?
  16. jquery自定义插件_创建一个自定义jQuery插件
  17. 从github上下载文件,文件夹,整个项目
  18. 启明云端分享|盘点ESP8684开发板有哪些功能
  19. idea出现clear read-only status问题解决方案
  20. 什么样的量化策略才算好策略?

热门文章

  1. 手机也能和模拟对讲机通话,是真的吗?
  2. Windows 如何关闭快捷键ctrl+alt+方向键旋转屏幕
  3. 2019年为什么都说现在的淘宝客越来越难做?很多人都说谁做淘客谁傻?
  4. 电磁诱导透明matlab程序,一种实现类电磁诱导透明效应的超材料及方法与流程
  5. Panoptic SegFormer:全景分割第一名!南大港大英伟达提出新算法,霸榜全景分割...
  6. html复选框全选怎么实现,js html css实现复选框全选与反选
  7. 再见收费的Navicat,操作所有数据库就靠它了!
  8. 《攻守道》:马云的人设与梦想
  9. 专利授权,专利授权的条件、周期以及步骤
  10. 学习笔记-写论文修改语法、同义词替换、找专业名词的一些网站