如何使用prev来获取输入字段的值

时间:2009-08-05 06:32:19

标签: jquery

我有一个隐藏的输入字段,其值为

   <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 ()          
             ));


});

感谢

3 个答案:

答案 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>

示例:http://jsbin.com/ipado

答案 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中跳一级,你会找到隐藏的输入。