Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .filter jquery错误_Javascript_Jquery - Fatal编程技术网

Javascript .filter jquery错误

Javascript .filter jquery错误,javascript,jquery,Javascript,Jquery,我遇到了一个问题,下面是javascript/jquery getTextForDisplay: function() { var displayText = "Select..."; var options = this.dataSource._data; var selectedOptions = $.filter(options, function(index){ return t

我遇到了一个问题,下面是javascript/jquery

 getTextForDisplay: function() {

            var displayText = "Select...";
            var options = this.dataSource._data;

            var selectedOptions = $.filter(options, function(index){
                return this.selected;

            });

            if (selectedOptions.length == 1) {
              displayText = "length1";
            } 
            else if (selectedOptions.length > 1) {
                displayText = "Multiple...";
            } 
            return displayText;
        }
    });

这是关于有复选框的多选下拉框,选项变量是一个从viewmodel中提取数据的可观察数组,所以我想做的是,如果只选中一个复选框,则显示“length1”,如果选中多个复选框,则显示“Multiple…”,这看起来很简单,但在运行它时,我一直会出错。错误是c.replace不是函数,错误在jquery.min.js文件中。如果我从.filter中删除索引,它仍然不起作用,但也不会出错。

没有
$.filter()
,除非您自己编写或使用插件

正确的语法是

options.filter(function (index) {
    ...
});

以下是文档:

没有
$.filter()
,除非您自己编写或使用插件

正确的语法是

options.filter(function (index) {
    ...
});

文档如下:

jQuery没有定义
jQuery.filter()
函数(至少没有)。它确实定义了
jQuery
集合的方法

也许这就是你要找的

var selectedOptions = $.grep(options, function (option, index) {
    return option.selected;
});

jQuery没有定义
jQuery.filter()
函数(至少没有)。它确实定义了
jQuery
集合的方法

也许这就是你要找的

var selectedOptions = $.grep(options, function (option, index) {
    return option.selected;
});

您没有正确使用
jQuery.filter
方法,但是,有一个文档化的方法可以满足您的需要。您应该使用文档化的方法,而不是未文档化的方法

$.grep(options, function(){
    return this.selected;
});

要使其正常工作,
options
必须是类似数组的结构。

您没有正确使用
jQuery.filter
方法,但是,有一个文档化的方法可以满足您的需要。您应该使用文档化的方法,而不是未文档化的方法

$.grep(options, function(){
    return this.selected;
});


要使其正常工作,
选项必须是一个类似数组的结构。

为什么你认为
.filter
接受两个参数?第一,避免使用if-elseif:)@eicto:有什么正当的理由吗?@zerkms是的,代码读得更好,你有没有在fold-if-elseif中看到ifelseif十次?最好使用'if(){return;}@zerkms
$.filter
方法最多可以接受3个参数。为什么你认为
.filter
可以接受2个参数?首先,避免使用if-elseif:)@eicto:有什么正当的理由吗?@zerkms是的,代码读得更好,你有没有看到ifelseif和folded-if-elseif十次?最好使用`if(){return;}@zerkms,
$.filter
方法最多接受3个参数。jQuery确实有一个
$.filter
方法,只是没有文档记录。打开控制台,运行
typeof$.filter
@KevinB好的,很公平。但从源头上看,这显然不是OP想要的。它用于使用选择器字符串筛选jQuery对象。jQuery确实有一个
$。filter
方法,只是没有文档记录。打开控制台,运行
typeof$.filter
@KevinB好的,很公平。但从源头上看,这显然不是OP想要的。它是用来过滤带有选择器字符串的jQuery对象的。这对我来说很有效,但我没有使用它。我必须使用option.selected,这样我才能得到返回的数组元素。谢谢@上帝啊。很抱歉我认为它设置了函数的上下文。这对我来说很有效,但我没有使用This.selected,而是使用option.selected,这样我就可以得到返回的数组元素。谢谢@上帝啊。很抱歉我认为它设置了函数的上下文。