0

在 html 页面中加载 jquery 脚本时遇到问题。当我调试某些值会变成红色但它们不会。我究竟做错了什么?仅供参考,这是我试图在 Visual Studio 中复制的内容:http: //jsfiddle.net/jfriend00/GAwrB/

    <html>
<head>
<title></title>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
    $(".colorMe td").each(function() {
        var valueInTd = $(this).text();
        if (valueInTd < 3000) {
            $(this).css('background-color', '#F00000');
        }
    });
});

​​​

</head>
<body>
 <table class="colorMe">
<tr><td>2000</td><td>3500</td></tr>
<tr><td>3000</td><td>2500</td></tr>
<tr><td>4000</td><td>4500</td></tr>
</table>​
  </body>
</html>
4

4 回答 4

1

我不确定您要做什么,看起来您正在混合 IIFE(立即调用函数表达式)和常规函数声明。

如果您只是将自己的代码粘贴到 JSFiddle 中,您会看到错误:http: //jsfiddle.net/f6sH6/

这是我得到的错误:Uncaught ReferenceError: rr is not defined

看起来您试图使问题复杂化。这工作正常:

$(function () {
    $(".colorMe td").each(function() {
        var val = parseInt(this.innerHTML, 10);
        if (val < 3000) {
            this.style.backgroundColor = "#F00000";
        }
    });
});
于 2012-10-23T19:24:53.787 回答
0

这是另一个例子:

http://jsfiddle.net/GAwrB/92/

我在 jQuery 版本上发现了一个问题。您应该尝试最新版本并使用 onDomReady 而不是 onLoad,它适用于您的示例。

问候

于 2012-10-23T19:35:51.873 回答
0

jQuery 语法略有不同:

$(".colorMe td").each(
    var val = parseInt($(this).text(), 10);
    if (val < 3000) {
        $(this).css('background-color','#F00000');
    }
)
于 2012-10-23T19:25:01.400 回答
0

我可以看到2个问题。1)您的函数声明rr在括号内,因此在括号外无法访问,2)each您调用的函数使用了不正确的语法。它应该看起来像:

$(".colorMe td").each(function() {
    // ... code
});
于 2012-10-23T19:26:25.250 回答