根据链接文本自动将类添加到链接

时间:2018-07-10 作者:Chris

我想知道是否有可能根据链接文本自动将类添加到一系列链接中。

场景如下:

我在Wordpress中的一个页面上显示了一个链接列表,该链接指向其他帖子——在本例中,是一个时间表的自定义帖子类型。这些帖子都有基于时间的名字,即“12:23”、“12:53”、“13:23”等等。

这将生成如下链接列表:

<a href="departuretime/1223">12:23</a>

<a href="departuretime/1253">12:53</a>

<a href="departuretime/1323">13:23</a>
其中,每个链接都链接到与显示该计划相关联的完整自定义帖子。

我想根据当前时间格式化这些链接,为此,我需要根据链接文本自动生成类。

<a class=\'1223\' href="departuretime/1223">12:23</a>

<a class=\'1253\' href="departuretime/1253">12:53</a>

<a class=\'1323\' href="departuretime/1323">13:23</a>
如果您对此有任何帮助,我们将不胜感激。

2 个回复
最合适的回答,由SO网友:Drupalizeme 整理而成

如果我理解正确,您需要一个与当前时间相关的发车视觉指示器。

一种解决方案是使用Javascript,并提供一种将元素标识为已通过或活动计划时间的方法。

HTML

<div id="myElement">
  <a href="https://myawesomenewsite.com/departuretime/1253">1253</a>
  <a href="https://myawesomenewsite.com/departuretime/1255">1255</a>
  <a href="https://myawesomenewsite.com/departuretime/0955">0955</a>
  <a href="https://myawesomenewsite.com/departuretime/2213">2213</a>
</div>

JAVASCRIPT

// find elements
var rootElements = $("#myElement a");

rootElements.each(function(index, item){

 var url = item.href,
 arr_split = url.split("/"),
 arr_index = arr_split.length-1,
 departureTime = arr_split[arr_index],
 date = new Date(),
 myTime = date.getHours()+\'\'+date.getMinutes();

 //add your class like this
 item.classList.add(myTime);

 //but you can also spice it up a bit
if(departureTime>myTime){
     item.classList.add("you_have_time");
}else{
    item.classList.add("you_dont_have_time");
}

});

CSS

.you_have_time{
  color:green;
}

.you_dont_have_time{
  color:red;
}
当然还有jsfiddle

SO网友:Jacob Peattie

如果您只是出于样式化的原因才想这样做,则无需添加类,您可以使用attribute selector. 例如,设置href URL以结尾的链接样式1253 您可以使用:

a[href$="1253"] {
    color: red;
}
如果您有一个以该数字结尾的不同链接,则可以为以该数字结尾的链接指定样式1253 以开头departuretime:

a[href^="departuretime"][href$="1253"] {
    color: red;
}

结束