【问题标题】:Add class based on current page filename without file extension根据当前页面文件名添加类,不带文件扩展名
【发布时间】:2020-10-13 20:54:12
【问题描述】:

我想根据当前页面文件名添加一个类。

$(document).ready(function(){
    var url = window.location.pathname;
    var filename = url.substring(url.lastIndexOf('/')+1);
    $( "html" ).addClass( filename );
});

...产生

<html lang="en" dir="ltr" class="server.php">

我怎样才能去掉文件扩展名,以便最终得到...

<html lang="en" dir="ltr" class="server">

【问题讨论】:

    标签: html jquery css filenames


    【解决方案1】:

    您可以将字符串按. 拆分并返回除最后一部分以外的所有内容:

    $(document).ready(function(){
        var url = window.location.pathname;
        var filename = url.substring(url.lastIndexOf('/')+1).split('.')
        if (filename.length != 1) filename.pop()
        $( "html" ).addClass( filename.join('-'));
    });
    

    【讨论】:

    • 不错,除非文件名中包含多个句点/点 .this.file.php 会显示为“this”而不是“this.file”——在也就是说,“this.file”会导致 CSS 选择器出现问题,因此您应该将点转换为破折号,以获得“this-file”。点也使用lastIndexOf,就像它用于斜线/
    • 非常好的编辑!现在我将窃取它并使其成为一个接受 url 并返回生成的类名的函数。
    猜你喜欢
    • 2021-02-05
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2015-03-11
    • 2012-12-24
    相关资源
    最近更新 更多