如何使用索引值从下拉列表中获取所选文本?这是我三个多小时以来的工作。我已经尝试过这段代码的各种版本。
$("#saveBtn").click(function () {
var checked = [];
var checkedindex = [];
var theDate = [];
var inputname = $("input[name='searchString']");
$("input[name='selectedCourses']").each(function (i) {
if (this.checked) {
checked.push(parseInt($(this).val()));
checkedindex.push(parseInt(i));
var thedate = $('inputname option:eq(i)').prop('selected', true);
alert(checkedindex + thedate.toString());
}
});
});
这是我使用它的方式吗?
$('inputname option:eq(i)').prop('selected', true);
请帮我这个。感谢。
编辑:
HTML:
<select id="searchString" name="searchString">
<option value="Day" selected="selected">Day</option>
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
</select>
我在页面上有许多相同的下拉列表,其ID和名称相同。
答案 0 :(得分:1)
多个元素的相同ID是一个问题,如果您有多个ID,浏览器在获取第一个ID时会停止查找。
然而,我在您的代码中看到问题是:
var inputname = $("input[name='searchString']");
在上面的选择器中,您的元素为input
,前缀为select
,因此必须为:
var inputname = $("select[name='searchString']");
在这里:
var thedate = $('inputname option:eq(i)').prop('selected', true);
//--------------^^^^^^^^^^---this is the selector variable and you have used
//---------------------------as string and in ':eq(i)' i as a string
改为:
var thedate = inputname.find('option:eq('+ i +')').prop('selected', true);
如何获取所选文字 :
获取文字:
var thedate = inputname.find('option:eq('+ i +')').prop('selected', true).text();
获取值:
var thedate = inputname.find('option:eq('+ i +')').prop('selected', true).val();
你不必这样做:
thedate.toString()
因为.text()
会给你一个字符串。
答案 1 :(得分:0)
如果您想根据索引选择项目,那么您应该将选择器与该索引连接:
$("select option:eq("+ i +")").prop('selected', true);
但是你想用#saveBtn点击处理程序来实现什么?
到目前为止您的代码有几个问题:
您的网页上不应该有多个具有相同ID的元素。
[name =&#39; selectedCourses&#39;]没有输入,因此您需要使用$("select[name='selectedCourses']")
parseInt($(this).val())
。你为什么要尝试从字符串值解析int?var thedate = $('inputname option:eq(i)').prop('selected', true);
alert(checkedindex + thedate.toString());
thedate
变量是jQuery对象,因此调用.toString()
始终会返回[object Object]
如果您尝试获取网页上所有选择的值,则应使用.val()功能(它也适用于复选框),如下所示:
$("select[name='selectedCourses']").val()
答案 2 :(得分:0)
使用这个。
$("select").on("change",function(){
alert($(this).val());
});
你可以在这里试试。 答案 3 :(得分:0)