微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发现实际页面中是否包含jqGrid对象

如何解决发现实际页面中是否包含jqGrid对象

| 标题中的问题几乎是完整的:是否可以使用jquery查找jqgrid对象处理的元素? 更准确地说,如果页面上存在一个重新加载方法,我希望在网格上调用它。 我正在使用以下代码
...
success: function (data) {
    //Check if there is a jqgrid on the page and if present,reloads its data
    var jqgrid = $(\'.ui-jqgrid\');
    if ( jqgrid.length ) {
        //get the grid id. The actual id object is in the form of \"gBox_your_grid_id\"
        var gridid = \"#\" + jqgrid.attr(\'id\').substring(5);
        //time to reload
        $(grid).trigger(\'reloadGrid\');
    }
}
但似乎从未调用过reloadGrid方法。有什么建议吗?     

解决方法

        很难建议任何将是完美的测试。您可以尝试例如搜索\“ gbox \”:
$(\'div.ui-jqgrid\')
-它是一个div,其中包含jqGrid的所有组件。如果
$(\'div.ui-jqgrid\').length > 0
,则页面上至少存在网格。 您可以在bdiv中搜索
table
元素:
$(\'div.ui-jqgrid-bdiv table\').length > 1
甚至
if ($(\'div.ui-jqgrid > div.ui-jqgrid-view > div.ui-jqgrid-bdiv > div > table.ui-jqgrid-btable\').length > 1) {
    // jqGrid exist
}
(有关详细信息,请参见此处)。另外,您可以测试此类表元素是否具有
jqGrid
方法:
if ($.isFunction($(\'div.ui-jqgrid > div.ui-jqgrid-view > div.ui-jqgrid-bdiv > div > table.ui-jqgrid-btable\').jqGrid)) {
    // jqGrid exist
}
    ,        我不了解jqGrid本身,但是我很确定要看看它为样式元素添加了自定义类的作用,因此您很可能可以确定哪个类是您感兴趣的,然后使用
$(\'.classname\')
来获取所有元素。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。