Jquery 未捕获类型错误:无法调用方法';拆分';未定义的

Jquery 未捕获类型错误:无法调用方法';拆分';未定义的,jquery,Jquery,我试图在我的网站上加入流沙脚本,但我失败了。 Firebug给了我这个错误:65未捕获类型错误:无法调用未定义的方法“split”: 对于此脚本: jQuery.noConflict(); jQuery(document).ready(function($){ // Clone applications to get a second collection var $data = $("#portfolio-items").clone(); //NOTE: Only f

我试图在我的网站上加入流沙脚本,但我失败了。
Firebug给了我这个错误:
65未捕获类型错误:无法调用未定义的方法“split”:

对于此脚本:

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;
    });
});

请参见此处:
错误是什么?

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

如果
.attr(“class”)
返回
未定义的
,则不能对其调用
.split
,因为
.split
字符串
对象的方法,不能在
未定义的
上调用。您需要存储
.attr(“类”)
的结果,然后仅当该结果不是
未定义时才将其拆分

var filterClass = $(this).attr('class');
filterClass = filterClass ? filterClass.split(' ').slice(-1)[0] : '';
现在filterClass将包含您期望的内容,或者一个空字符串


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

另一种解决方案是使用
toString
方法

  var filterClass = $(this).attr('class').toString();
   filterClass = filterClass.split(' ');

它对我有效

为什么你认为filterClass可能等于
。所有当前的
?非常感谢你的回答。现在我解决了这个问题,但我不明白为什么图像会消失。你可以在这里看到: