覆盖样式| JQuery的

时间:2011-12-17 05:45:41

标签: jquery override

此代码可以正常使用

http://jsfiddle.net/LH7sy/11/

它会尝试在类sml(的元素中找到)smluppercase,并将其替换为<span style="text-transform:none"></span>

但是当我尝试将所有这些放在一个文件HTML文件中时,它就不起作用了!

我应该使用别的东西而不是$(文件).ready吗?有什么问题?

<html>
<head>
<script type="text/javascript">
<!--
$(document).ready(function () {
     $('.uppercase').each(function() {
        var end = false;
        var s = $(this).html();
        while(end == false) {
            var p1 = s.indexOf('sml(');
            var p2 = s.indexOf(')sml');
            if (p1 != -1) { /* if '(' is found in the string */
                var result = s.substring(0,p1);
                result += '<span style="text-transform:none">';
                result += s.substring(p1+4,p2);
                result += '</span>'                        
                result += s.substr(p2+4);
                s = result;
            } else {
                end = true;
            }
        }
        $(this).html(result);
    })
})
-->
</script>

<style type="text/css">
<!--
.uppercase:hover {
    text-transform:uppercase;
}
-->
</style>
</head>
<body>

  <span class="uppercase">
     everything uppercase except sml(this)sml and sml(this too)sml
  </span>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

您需要在document.ready来电之前添加对jQuery的引用:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>

答案 1 :(得分:1)

样式应该在文档的<head>中。您还需要确保实际加载jQuery,这在代码中未指定。