我将jQuery选择器作为参数和年份值传递给函数,以针对来自select(jQuery选择器参数)的所有值的数组测试值。如果任何选项值与“value”参数相同,我需要它返回一个布尔值true,但它总是返回undefined。
function checkOptions(selector, prop) {
var options = selector.children('option');
var selectorValues = $.map(options, function(option) {
if( option.value == prop ){
return !!(option.value == prop);
}
});
}
更改原始代码以反映所做的建议后,该函数仍会返回“undefined”。
function checkOptions(selector, prop) {
var result;
var options = selector.children('option');
var selectorValues = $.map(options, function(option) {
return option.value == prop;
});
}
变量“selectorValues”在运行时保存这些值:
selectorValues = [false, false, true, false, false]
这是有道理的,因为我将“年”传递给道具,这是选择选项的价值之一。
答案 0 :(得分:1)
在这种情况下,地图功能没有正确使用,这就是你遇到麻烦的原因。它的作用是为数组的每个元素应用转换。查看some function。它是一个预定义的javascript函数,可以完全满足您的需求。
我会使用jquery对象的“数组”,将它们转换为本机javascript数组,然后调用它们上的某个方法来检查所需的条件。
function checkOptions(selector, prop) {
var options = selector.find('option').toArray();
var result = options.some(function(currentValue) {
return (currentValue.text == prop); //using type coercion
});
return result;
}