感谢您阅读本文。
我原本以为它就像在select .val()上使用.split函数一样简单,但是我得到了一个js错误。这是我正在使用的代码。我将使用.each()循环选择的项目...但是想了解我做错了什么......
如果我用文字设置选项...分割工作(注释代码)
由于
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/JavaScript">
$(function(){
$("#multOpts").bind("click", function() {
// var opts = "OPT1,OPT2,OPT3" ;
var opts = $("#select1").val() ;
$("#text1").val(opts);
});
$("#oneOpt").bind("click", function() {
// var opts = "OPT1,OPT2,OPT3" ;
var opts = $("#select1").val() ;
var optsArray = opts.split(",") ;
$("#text2").val("1st opt: " + optsArray[0]);
});
}); // End eventlistener
</script>
</head><body>
<select id="select1" multiple size="5">
<option value="OPT1">Option 1</option>
<option value="OPT2">Option 2</option>
<option value="OPT3">Option 3</option>
<option value="OPT4">Option 4</option>
<option value="OPT5">Option 5</option>
</select>
<div>
<input id="multOpts" type="button" value="Show Options"/>
<input id="text1" type="text"/>
</div>
<input id="oneOpt" type="button" value="One Option"/>
<input id="text2" type="text"/>
</body></html>
答案 0 :(得分:6)
当选择了多个选项时,val()函数会返回已经是数组,不需要进行拆分。
$("#oneOpt").bind("click", function() {
var opts = $("#select1").val();
$("#text2").val("1st opt: " + opts[0]);
});
答案 1 :(得分:1)
由于jQuery 1.2,.val()返回值数组,因此返回多个select。
var opts = $("#select1").val() || [];
$("#text2").val("values is: " +opts.join(", "));