如何使用jQuery将类添加到正文标记?

时间:2010-01-07 03:21:16

标签: jquery class url

让我澄清一下我的问题,以及我正在寻找的解决方案。我正在使用wikispaces.com,我想使用jQuery为每个页面动态添加一个独特的body类,以某种方式抓取URL,然后插入将专门应用的唯一body类,仅用于该页面。

所以,这是我的维基空间的一个示例网址...

http://wikithemes.wikispaces.com/Audio+Page

我想让jQuery抓住...让我们说.com /之后的第一个单词,在这个页面上将是音频。所以,我需要的jQuery会将类音频应用于body标签,就像这样......

<body class="audio">

在他们的文档中,任何jQuery都可以插入,因为它是默认加载的。但他们澄清说,如果你使用单词 jQuery ,它将只在wiki中使用$符号。像这样......

jQuery(document).ready(function(){

我真的很感谢你能帮我解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:2)

不确定您在放置代码时的限制。我只是将其放在您文档的<head>中,然后将该类应用于html元素而不是body,这样您就不会获得FOUS或“Flash没有样式的内容“。几乎在页面加载后,该类在元素上“存在”,但在它显示之前,如果你这样做:

<script type="text/javascript">
    var loc = window.location.pathname.match(/^\/?(\w+)\b/);
    // document.documentElement is the html element, this adds the class
    if(loc) document.documentElement.className += " " + loc[1].toLowerCase();
</script>

如果你真的想使用jQuery:

<script type="text/javascript">
    // jQuery is passed to the ready function as a parameter, so we alias it with $
    // This will work for you even with wikispaces
    jQuery(function($){
        var loc = window.location.pathname.match(/^\/?(\w+)\b/);
        if(loc) $(document.body).addClass(loc[1].toLowerCase());
    });
</script>

答案 1 :(得分:0)

常规javascript:

jQuery(document).ready(function(){
    var urlPath = window.location.pathname;
    document.body.className = urlPath.match(/\/(.*?)(\+|$)/)[1].toLowerCase();

});