Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 分割功能无法正常工作_Javascript_Jquery_Split_Jquery Events - Fatal编程技术网

Javascript 分割功能无法正常工作

Javascript 分割功能无法正常工作,javascript,jquery,split,jquery-events,Javascript,Jquery,Split,Jquery Events,我正在尝试从多个选择中捕获所选项目,以便将它们插入到另一个选择输入中。问题是,当我尝试使用split函数拆分所选元素时,控制台会抛出下一个错误:uncaughttypeerror:strValue.split不是一个函数 HTML 事件外所有操作正常,但不在事件内。返回选择[多个]元素的值数组 从文档中: .val()方法主要用于获取表单元素的值,例如输入、选择和文本区域在select元素的情况下,如果未选择任何选项,则返回null,如果至少有一个选项,则返回一个包含每个选项值的数组,并且可以选

我正在尝试从多个选择中捕获所选项目,以便将它们插入到另一个选择输入中。问题是,当我尝试使用
split
函数拆分所选元素时,控制台会抛出下一个错误:
uncaughttypeerror:strValue.split不是一个函数

HTML 事件外所有操作正常,但不在事件内。

返回
选择[多个]
元素的值数组

从文档中:

.val()
方法主要用于获取表单元素的值,例如
输入
选择
文本区域
select
元素的情况下,如果未选择任何选项,则返回
null
,如果至少有一个选项,则返回一个包含每个选项值的数组,并且可以选择更多选项,因为存在
multiple
属性。

(强调矿山)


这意味着你对
//这给出的字符串“cost,Back”
是不正确的,因为你实际上得到了一个数组,你可能正在将其转换为字符串(使用
alert
?)

你已经得到了一个值数组,原因是在选择选项中你可以允许多个选择,使用
select
元素上的
multiple
属性,您就可以得到它。所以值总是以数组的形式返回,否则返回多个值会更好


因此无需拆分,它已经是一个数组。

Multiple select返回一个数组而不是字符串

$("#e9").change(function(){
    var strValues = $(this).val(); // This gives you the string "Chest,Back"

    alert(strValues[0]);
    alert(strValues[1]);
});

.val()
返回所选元素的数组。因此,您不需要使用
split
函数。数组元素显示为
的字符串连接。你可能不明白

//这会给你一个字符串“cost,Back”或未定义的
…你为什么认为
.val()
会给这个字符串
“cost,Back”
$("#e9").change(function(){
    var strValues = $(this).val(); // This gives you the string "Chest,Back"
    var arrValues = strValues.split(",");          
});
$("#e9").change(function(){
    var strValues = $(this).val(); // This gives you the string "Chest,Back"

    alert(strValues[0]);
    alert(strValues[1]);
});