jquery - 未捕获的类型错误 : Cannot call method 'split' of undefined

标签 jquery

我试图在我的网站上包含 Quicksand 脚本,但失败了。
Firebug 给我这个错误:65 Uncaught TypeError: Cannot call method 'split' of undefined:

对于此脚本:

jQuery.noConflict();
jQuery(document).ready(function($){
    // Clone applications to get a second collection
    var $data = $("#portfolio-items").clone();

    //NOTE: Only filter on the main portfolio page, not on the subcategory pages
    $('#portfolio-terms ul li').click(function(e) {
        $("ul li").removeClass("active");   
        // Use the last category class as the category to filter by. This means that multiple categories are not supported (yet)
        var filterClass=$(this).attr('class').split(' ').slice(-1)[0];
jquery.custom.js:65 Uncaught TypeError: Cannot call method 'split' of undefined (repeated 6 times)

        if (filterClass == '.all current') {
            var $filteredData = $data.find('#portfolio-');
        } else {
            var $filteredData = $data.find('#portfolio-[data-type=' + filterClass + ']');
        }
        $("#portfolio-items").quicksand($filteredData, {
            duration: 800,
            easing: 'swing',
        });     
        $(this).addClass("active");             
        return false;
    });
});


参见这里:http://stakk.it/
错误是什么?

谢谢你,抱歉我的英语不好!

最佳答案

如果 .attr("class") 返回 undefined,则无法对其调用 .split,因为 .split String 对象的一个​​方法,不能在 undefined 上调用。您需要存储 .attr("class") 的结果,然后仅在它不是 undefined 时才拆分它。

var filterClass = $(this).attr('class');
filterClass = filterClass ? filterClass.split(' ').slice(-1)[0] : '';

现在filterClass将包含您期望的内容,或者一个空字符串。

编辑:您可以将 $(this).attr('class') 替换为 this.className(从已删除的答案中提取)。

关于jquery - 未捕获的类型错误 : Cannot call method 'split' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987278/

相关文章:

javascript - 幻灯片放映,显示图像标题(然后为其设置动画)

位置保持不变的 Javascript 或 CSS 静态栏

jquery - 拖放对象会导致 Firefox 33.1 跳转到无效 URL

javascript - 基于URL查询的后台切换

Jquery-fancybox

javascript - Chrome 在 last-child 更改时不更新样式

javascript - 为什么过滤器 (":visible"找不到外部元素)如果设置内部元素位置 :absolute?

javascript - 如何通过jquery ajax提交checkbox?

javascript - 每当 div 在 mootools 中增加或减少时如何调用函数

Jquery加载刷新div