拆分功能无法正常工作

时间:2015-06-30 18:20:02

标签: javascript jquery split jquery-events

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

HTML

<select multiple id="e9" name="musc_group[]">
    <option value="Chest">Chest</option>
    <option value="Back">Back</option>
</select>

JAVASCRIPT

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

在所有活动中,一切正常,但不在其中。

4 个答案:

答案 0 :(得分:4)

.val()返回select[multiple]元素的值数组。

来自文档:

  

.val()方法主要用于获取表单元素的值,例如inputselecttextarea对于select元素,当没有选择任何选项时返回null,并且当存在至少一个选项时,它返回包含每个所选选项的值的数组,并且可以选择更多因为multiple属性存在。

(强调我的)

这意味着您对// This gives you the string "Chest,Back"的评论不正确,因为您实际上是在获取一个可能正在转换为字符串的数组(使用alert?)

答案 1 :(得分:0)

您已经获得了一系列值,原因是在select选项中您可以允许多个选项,并且您可以使用multiple元素上的select属性。所以值总是以数组的形式返回,因为如何更好地返回多个值。

所以不需要拆分,它已经是一个数组。

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

.val()返回一系列选定元素。所以,你不需要split功能。并且数组元素显示为,的字符串连接。你可能会错过了解。