如果getJSON调用的值是特定值,则通过Jquery添加CSS样式

时间:2013-01-30 00:19:39

标签: jquery css getjson

我是jquery的新手,希望得到一些帮助。

我有一个以getJSON格式提取数据的页面,并将所述数据插入到页面上的元素中。然后页面每2秒刷新一次以获取更新的数据。

页面上正在更新的元素示例:

<abbr title="mouse hover description" id="User004">..updated by getJSON..</abbr>

以下是我如何获取和刷新abbr元素的内容(这有效):

function refreshData()
    {
        $.getJSON('http://domain.com/Data.php',function(User) {
            $.each(User, function(key, val) {
                $('#'+key).text(val);
              });
            });

    }
    window.setInterval("refreshData()", 2000);

我想要完成的是:
A)如果键user004具有值2,则添加CSS样式 B)如果键user004具有值而另一个键user007为3,则添加CSS样式。

这就是我今天第一期的问题,但我知道这是不正确的:

$.getJSON('http://domain.com/Data.php',function(User) {
            $.each(User, function(key, val) {
                $('#'+key).text(val) {
                    if ($('#user004:contains("2")'))
                    {
                        $("#"+key).css({color: '#9a4d9e', cursor: 'default'});
                    }
                }
              });
            });

2 个答案:

答案 0 :(得分:1)

我认为当你做一个$('#user004:contains(“2”)')时,你误解了jQuery正在做什么。在这种情况下,jQuery将始终返回一个对象(恰好是jQuery本身)。如果要检查是否匹配,可以使用

if ($('#user004:contains("2")').length > 0)

虽然说实话,但我不太清楚为什么会这样。你有密钥和价值,为什么不直接使用它们而不是从DOM中提取它们?这似乎效率低下。

答案 1 :(得分:0)

感谢您的反馈user1545858。

我结束了以下解决方案,目前运作正常:

    function refreshData()
    {
        $.getJSON('http://domain.com/Data.php',function(Callcenter) {
            $.each(Callcenter, function(key, val) {
                $('#'+key).text(val);
              });
            });


        // Add custom style if value equals
        if (($("#User004").text() == "0") && (($("#User007").text() < "4"))) {
            $("#User004").css("color","red");
        }
    }

        // Refresh the above every 2 seconds...
        window.setInterval("refreshData()", 2000);