jqGrid在空单元格中返回一个空格

时间:2012-09-08 10:58:41

标签: jquery jqgrid

我正在编写一些基于jqGrid的代码,我遇到了与渲染空单元格有关的问题。

我使用JSON返回要渲染的数据,当没有值时,jqGrid不输出任何值,而是输出空格。这会导致问题,因为如果单元格为空,我需要触发一个函数。

我已经使用Firebug查看了返回的JSON,它绝对正确,没有返回空格。

查看最新的jqGrid演示可以复制此问题:

  1. 访问http://trirand.com/blog/jqgrid/jqgrid.html
  2. 查看包含空单元格的任何演示网格,并在Firebug中“检查此元素”。
  3. 你会注意到这个演示网格做同样的事情
  4. 我很欣赏这可能是出于有效性的原因,但有没有解决方法呢?目前我的工作选择器上写着:

    $(".jqgrow td:not(:first-child)")
    

    我试图使用:包含如下组合它们但到目前为止没有任何运气:

    $(".jqgrow td:not(:contains(' '))")
    $(".jqgrow td:not(:contains(' '))")
    $(".jqgrow td:not(:contains(' '))")
    

    我将不胜感激!

    更新1:

    我制作了这个jsFiddle,它扩展了问题:http://jsfiddle.net/fJZst/

    我从表中复制了一行,以尽可能简单。在演示中,如果将鼠标悬停在不包含空格的单元格上,您将收到警报。如果确实包含空格,则不会。如果您将警报替换为头部的工具提示,则选择器看起来很好。如果我在jqGrid中尝试这个,警报总是会触发,所以我有点困惑......

2 个答案:

答案 0 :(得分:1)

$('.jqgrow tr td').filter(function() {
        return $.trim($(this).text()) != ''
});

答案 1 :(得分:0)

您可以创建自定义伪类:http://jsfiddle.net/fJZst/1/

$.expr.pseudos.trimmedEmpty = $.expr.createPseudo(function() {
    return function(elem) {
        return $.trim( $.text(elem) ) === "";
    };
});

$(".jqgrow td:not(:trimmedEmpty)").mouseenter(function() {    
    alert($(this).text());
});