我正在编写一些基于jqGrid的代码,我遇到了与渲染空单元格有关的问题。
我使用JSON返回要渲染的数据,当没有值时,jqGrid不输出任何值,而是输出空格。这会导致问题,因为如果单元格为空,我需要触发一个函数。
我已经使用Firebug查看了返回的JSON,它绝对正确,没有返回空格。
查看最新的jqGrid演示可以复制此问题:
我很欣赏这可能是出于有效性的原因,但有没有解决方法呢?目前我的工作选择器上写着:
$(".jqgrow td:not(:first-child)")
我试图使用:包含如下组合它们但到目前为止没有任何运气:
$(".jqgrow td:not(:contains(' '))")
$(".jqgrow td:not(:contains(' '))")
$(".jqgrow td:not(:contains(' '))")
我将不胜感激!
更新1:
我制作了这个jsFiddle,它扩展了问题:http://jsfiddle.net/fJZst/
我从表中复制了一行,以尽可能简单。在演示中,如果将鼠标悬停在不包含空格的单元格上,您将收到警报。如果确实包含空格,则不会。如果您将警报替换为头部的工具提示,则选择器看起来很好。如果我在jqGrid中尝试这个,警报总是会触发,所以我有点困惑......
答案 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());
});