我在一张表中有大约15行,每行包含一个下拉菜单。这是我的下拉列表的代码
<td headers="Vehicles">
<select id = "Dropdown">
<%if (ViewData.Model.Details.ElementAt(i).vehicle == "Car")%>
<%{%>
<option value="car" selected="selected">car</option>
<option value="Bus">Bus</option>
<option value="Lorry">Lorry</option>
<%} %>
<%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Bus")%>
<%{%>
<option value="car" >car</option>
<option value="Bus" selected="selected">Bus</option>
<option value="Lorry">Lorry</option>
<%} %>
<%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Lorry")%>
<%{%>
<option value="car">car</option>
<option value="Bus">Bus</option>
<option value="Lorry" selected="selected">Lorry</option>
<%} %>
</select>
</td>
现在,如果我点击第4行,我需要在第4行中选择的选项值。
当我点击一行的第三列时,我正在阅读第一列文本。像这样我需要阅读行中选择的选项。
$('#Requests td:nth-child(3)').bind('click', function () {
var id = $(this).parents('tr:first').find('td:eq(0)').text();
});
答案 0 :(得分:2)
$('#Requests td:nth-child(3)').bind('click', function () {
var id = $(this).parents('tr:first').find('td:eq(0)').text();
var selected = $(this).parents('tr:first').find('td:eq(0)').find('select#Dropdown').val();
});
您应该按照建议使用on
:
$('#Requests td:nth-child(3)').on('click', function () {
var id = $(this).parents('tr:first').find('td:eq(0)').text();
var selected = $(this).parents('tr:first').find('td:eq(0)').find('select#Dropdown').val();
});
答案 1 :(得分:1)
试试这个:
$('#Requests td').on('click', function () {
var id = '';
var ddVal = $(this).closest('tr').find('select :selected').val();
if($(this).index() === 2){
var id = $(this).closest('tr').find('td:eq(0)').text();
}
console.log(id);
console.log(ddVal);
});
在您的代码中我假设您没有为多个select
下拉元素应用相同的ID。如果是这种情况,那么我会说这不是有效的HTML标记,您必须为选择元素提供不同的ID,或者您可以将id
属性更改为class
。
答案 2 :(得分:0)
首先,您不能在多个地方对id
标记使用相同的select
,因此请将其更改为class
class="Dropdown"
您需要在下拉列表中找到所选值,如下面的代码
$("#tableId tr").click(function() {
var selectedOption = $(this).find(".Dropdown").val();
alert(selectedOption );
});
答案 3 :(得分:0)
只需将一个课程分配到下拉菜单
即可获得参见jsfiddle
$(function(){
$(".sel").change(function(){
alert($(this).val());
});
});