jQuery :包含帮助。需要它来选择"8:00 p.m. - 8:00 p.m."



我正在遇到一个问题写作,该杂志将标识"下午8:00"。出现两次。我写的一切都会成功改变"晚上8:00 - 下午8:00"(此后称为" A"(至"下午8:00"也会改变"晚上8:00-下午10:00"(此后称为" B"(和"上午6:00-下午8:00"(此后称为" C"(至"晚上8:00"。

时机来自PHP,鉴于PHP几乎显示了几乎所有可能的一切,在PHP中编写解决方案超出了我的大脑的能力" 2017年3月31日,星期五 - 2017年4月14日,星期五,上午9:00-下午10:00"到" 2017年4月28日,星期五,下午2:00-下午4:00"到" 2017年2月9日,星期四 - 2017年2月11日,星期六,下午8:00-下午8:00。"以及两者之间的所有内容,所以我试图在jQuery中编写解决方案,以解决该问题。当事件在几天内进行多次表演而没有结束时间时,就会创建实际问题。例如:活动从周四,星期五和周六晚上8:00开始。并且没有结束时间。因此,最终发生的是晚上8:00- 8:00 PM。被展示。我想用jQuery将其更改为晚上8:00。

最简单的解决方案不起作用,也不会更改a,b或c。

$('span.eventTime:contains("8:00 p.m. - 8:00 p.m.")').text('8:00 p.m.');

我认为这是因为连字符,但这只是一个猜测。

但是,将" - "更改为"-在PHP和jQuery中,均行不通。将其更改为"-"在php中,在jQuery中离开" - "也不起作用。

所有确实有效,最终更改A,B和C的所有内容,因为代码看到" 8:00"出现一次,并且不知道只有看到2个实例" 8:00英寸。

下面是我尝试过的其他解决方案的列表,这些解决方案并不专门更改为下午8:00。而不是B和C:

$('span.eventTime:contains("8:00"):contains("p.m."):contains("-"):contains("8:00"):contains("p.m.")').text('8:00 p.m.');
$('span.eventTime:contains("8:00 p.m. -"):contains("8:00 p.m.")').text('8:00 p.m.');
$('span.eventTime:contains("8:00 p.m."):contains("- 8:00 p.m.")').text('8:00 p.m.');
$('span.eventTime:contains("8:00 p.m."):contains("-"):contains("8:00 p.m.")').text('8:00 p.m.');

我已经尝试了其他人,但是我已经从我的代码中删除了它们。以上所有这些都不一定能起作用。

下面的代码适用于A和B,但它很麻烦又愚蠢,我必须写很多,更长的时间才能涵盖COST,例如C,例如C,我不喜欢这个想法。

$('span.eventTime:contains("8:00"):contains("p.m."):contains("-"):contains("8:00"):contains("p.m."):not(:contains("9:00"):contains("p.m.")):not(:contains("10:00"):contains("p.m."))').text('8:00 p.m.');

所以...也许你们可以弄清楚这一点,因为我处于我的智慧。

我目前正在使用以下内容,但我讨厌它 - 即使它有效,也很愚蠢。而且我必须写迭代,覆盖不仅是晚上8:00。 - 下午8:00

$('span.eventTime:contains("8:00"):contains("p.m."):contains("-"):contains("8:00"):contains("p.m."):not(:contains("a.m.")):not(:contains("1")):not(:contains("2")):not(:contains("3")):not(:contains("4")):not(:contains("5")):not(:contains("6")):not(:contains("7")):not(:contains("9")):not(:contains("10")):not(:contains("11")):not(:contains("12"))').text('8:00 p.m.');

使用香草JS对我有用,但我已经包裹了JQ Doc。

<script>
$(document).ready(function () {
    var spans = document.getElementsByClassName('eventTime');
    for (var i = 0; i < spans.length; i++) {
        var time = spans[i].innerHTML;
        if (time === "8:00 p.m. - 8:00 p.m.")
            spans[i].innerHTML = "8:00 p.m.";
    }
});
</script>

最新更新