单击按钮时,我正在尝试获取<select>
的值。 <select>
直接与DOM中的按钮有关,我正在尝试使用.closest()
我的来源是 -
<div class="alignleft actions">
<select id='bulk-action-selection' name='bulk-action'>
<option value='-1' selected='selected'>Bulk Actions</option>
<option value="delete" >Delete</option>
<option value="open" >Open Polls</option>
<option value="close" >Close Polls</option>
<option value="recast_allow" >Allow Recasting</option>
<option value="recast_deny" >Prevent Recasting</option>
<option value="votes_show" >Show Votes</option>
<option value="votes_hide" >Hide Votes</option>
</select>
<input type="submit" name="Submit" id="doaction" class="button-secondary action" value="Apply" />
</div>
我尝试使用的代码是(returnin'undefined' -
$('#doaction').click(function(e){
action = $(e).closest('select').val();
});
请帮助让代码生效(或建议更好的方法)。感谢。
答案 0 :(得分:2)
改变你的功能:
$('#doaction2').click(function(e){
action = $(this).prev('select').val();
// or action = $('#bulk-action-selection2').val();
})
e
是事件,而不是您点击的元素的引用(并且您的按钮ID为#doaction2
)
答案 1 :(得分:1)
e
内{p> click
指的是event
对象,我认为你的意思是$(this)
。此外,您的目标是错误按钮,您要查找的ID为doaction2
此外,不确定这是否是拼写错误,但在)
后需要额外$('#doaction').click()
:
$('#doaction2').click(function(e){
action = $(this).prev('select').val();
}); // <-- this
但由于您已经为select元素分配了ID
,我建议您直接定位它:
$('#doaction2').click(function(e){
action = $('#bulk-action-selection2').val();
});
这样,无论何时HTML发生变化,您仍然可以获得正确的行为。
答案 2 :(得分:1)
我认为
$('#doaction')
应该是
$('#doaction2')
完整代码
$('#doaction2').click(function(e){
action = $(e.target).prev('select').val();
});
答案 3 :(得分:1)
$(function() {
$('#doaction2').click(function(e){
action = $('#doaction2').prev().val();
console.log(action);
});
});