我有一个包含同一下拉菜单的多个实例的表格;表格的每一行代表一个独特的操作,因此我需要每次都能在此下拉菜单中捕获用户的选择。
我的HTML代码看起来像这样(为简洁而截断):
<tr class="convRow"><td>
<select class="convSelect">
<option value="Select" selected="selected">Select</option>
<option value="1">Foo</option>
<option value="2">Bar</option>
</select>
</td></tr>
在下拉列表的更改事件中,我调用此Jquery函数:
function convertThis(e) {
var targ = e.target || e.srcElement,
cSel = $(targ).parents('.convRow').prev().find('.convSelect').val();
console.log(cSel);
}
显然,这里必须发生比console.log更多的事情,但是你明白了。关键是cSel当前返回undefined,当它应该根据用户选择的内容返回1,2或Select时 - 我想获取值,而不是选定的文本。
将有七个表'rowRow'的表行,以及需要检索此数据的不同实例 - 而不仅仅是下拉更改事件,这就是我这样做的原因。我还尝试了减去'prev()'函数的函数但没有成功。有什么想法吗?
答案 0 :(得分:1)
我建议您在当前元素的this
上下文中直接使用function convertThis(e) {
var sSel = $(this).val();
console.log(cSel);
}
方法。像
.prev()
但是,您需要从语句中删除tr
,因为它将在$(targ).parents('.convRow').find('.convSelect').val();
元素的上一个兄弟中搜索元素。
使用
$(targ).parents('.convRow').prev().find('.convSelect').val();
而不是
getColumnText(Object e1, int c1)
答案 1 :(得分:0)
我认为你应该使用jquery事件
$(".convSelect").on('change', function(){
sSel = $(this).val();
console.log(sSel);
})