仅当文本等于X时应用css

仅当文本等于X时应用css,css,Css,我有这样一个链接: <h1> <a href="#">Title 001 - Stuff</a> </h1> h1 a[text="Title 001"] 但这不起作用 而且。。。然后我想知道是否有可能在标题XXX中这样做,其中XXX是一个动态数字。恐怕这在CSS中是不可能的 您使用的是: 而且你没有一个叫做text的属性 您必须使用Javascript来处理这种情况。曾经有一个想法:contains伪选择器,但从未实现过。您不能按内容

我有这样一个链接:

<h1>
    <a href="#">Title 001 - Stuff</a>
</h1>
h1 a[text="Title 001"]
但这不起作用


而且。。。然后我想知道是否有可能在标题XXX中这样做,其中XXX是一个动态数字。

恐怕这在CSS中是不可能的

您使用的是:

而且你没有一个叫做text的属性


您必须使用Javascript来处理这种情况。曾经有一个想法:contains伪选择器,但从未实现过。

您不能按内容选择,但您可以像几乎已经做过的那样使用它

<h1>
    <a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
</h1>
属性中存在重复内容 如果希望避免使用JavaScript,可以在实际属性中复制内容gasp,并基于该属性选择:

然后选择以标题开头的任何内容:

a[数据内容^=标题]{ 颜色:红色; } 手动测试文本内容 或者,您必须采用JavaScript方法:

var links=document.queryselectoral a; 变量模式=/^Title\s\d{3}/; 对于var i=0;i.长度;i++{ 如果pattern.test链接[i].textContent{ links[i].classList.add; } } 这只是一个示例,说明了如何向所有匹配元素添加.distinction类

使用jQuery进行过滤 如果您使用的是jQuery或类似的实用程序,则无需太多赘述即可完成此任务:

$a.filterfunction{ 返回/^Title/.test$this.text; }.AddClassDifference; 标题:数字: 如果您只想隔离和设置标题XXX部分的样式,而您没有访问源模板的权限,那么您也可以使用JavaScript:

$a.htmlfunction索引,html{ 返回html.replace/Title\d+/,$1; }; 以上假设您正在使用jQuery,但如果您不是,则可以通过以下操作完成相同的任务:

var anchors=document.getElementsByTagNamea ,长度=锚。长度 ,el; 而长度-{ el=锚[长度]; el.innerHTML=el.innerHTML.replace/Title\d+/,$1; } 使用css

<a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
a[data-content^="Title"] {
    color: red;
}.

不…CSS无法检测内容。不,您无法设置文本样式,您只能设置元素样式,将文本包装到元素中,然后设置元素样式。您需要使用JavaScript并应用CSSHow来执行此操作。您正在制作此HTML吗?为什么不在标签中添加一个类呢?请看Thank@jonathan sampson的作品很棒,但我只会应用样式标题XXX文本,而不是整个文本。我想如果没有像这样的环绕标签是不可能的。但这是不可能的,因为文本来自cms,我无法更改文本,也不想使用Javascript。@singuerinc您正确地认为您需要将该文本包装到新元素中。如果您没有访问源代码的权限,也可以使用JavaScript对其进行包装。
a[data-content="Title 0001 - Stuff"] {
    color: red;
}
<a href="#" data-content="Title 001 - Stuff">Title 001 - Stuff</a>
a[data-content^="Title"] {
    color: red;
}.
$('a').filter(function (i, element) {
    return element.text == "Title 001 - Stuff";
}).css('color','green');