我正在使用select元素创建一个过滤器。这适用于轮子商店,因此值将是螺栓图案,尺寸,颜色等。
我必须使用以下格式的所有选定值进行AJAX调用:
value1+value2+value3....
我能想到的唯一方法是迭代选定的选项并将符号+和选定的值添加到字符串中,最后使用子字符串删除第一个+符号。
var SelectedFilters = '';
$('#CategoryFilter .BlockContent select').each(function(index, element) {
value = $(element).find('option:selected').val();
if(value != "Choose One"){
SelectedFilters += ('+' + value); // This is the line with the problem
});
SelectedFilters = SelectedFilters.substring(1,SelectedFilters.length);
我遇到的问题是上面的第5行。我收到一个语法,意外的令牌错误,但我无法弄清楚我的语法有什么问题。
答案 0 :(得分:3)
该行没有任何问题,但下一行出了问题:
});
如果那应该是.each()
回调的结束,那么你就错过了}
语句的if
。如果它不应该是函数的结尾,则);
是错误的。
答案 1 :(得分:1)
您有一些语法错误,请使用JSLint或JSHint来修复它们。
此外,您可以大大简化此过程:
var SelectedFilters = $('#CategoryFilter .BlockContent option:selected')
.filter(function () { return this.value !== 'Choose One'; })
.map(function () { return this.value; }).get().join('+');