我是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'});
}
}
});
});
答案 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);