我有一个隐藏的输入字段,其值为
<form>
<input type="hidden" value="product"/>
<select class="select" name="select3" id="select3">
<option>0</option>
<option>1</option>
<option>2</option>
</select>
</form>
单击一个按钮后我需要获取输入字段的值,但我只得到文本对象为什么会这样?
var items[];
$('#my-add-button-sides').click(function() {
$('.select option:selected').each(function() {
var $this = $(this);
items.push($this.prev($('input[type=hidden]').val ()
));
});
感谢
答案 0 :(得分:0)
如果我理解正确你只需要获得所选内容的价值?如果是这样,我不相信each()函数是必要的。您可以像这样简单地获取选择的值:
$(document).ready(function(){
$('#select3').change(function() {
var selValue = $(this).val();
alert(selValue);
});
});
<form name="someForm">
<input type="hidden" value="product"/>
<select class="select" name="select3" id="select3">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
答案 1 :(得分:0)
您的代码中存在一些拼写错误。检查这是否有帮助。我修复了数组初始化和prev
调用。
var items = [];
$('#my-add-button-sides').click(function() {
$('.select option:selected').each(function() {
items.push($(this).parent().prev('input:hidden').val())
));
});
答案 2 :(得分:0)
在您的示例代码中,this
不是select-element,而是option-element。因此隐藏的输入和this
不是兄弟,prev
与您想要的元素不匹配。
$(this).parent().prev('input:hidden').val()
在DOM中跳一级,你会找到隐藏的输入。