如何在jQuery中获取最接近输入的值

时间:2017-04-11 19:55:44

标签: jquery

我无法获得输入字段的值 - 一遍又一遍地尝试。

这是HTML

<div class="col-md-10 persStmtPad input-group" style="margin-top: 1.5em;margin-left:35px">
  <input id="summerCourses1" name="summerCourses[]" type="text" placeholder="Summer Course" class="form-control input-md" value="ABcdEFG">
  <div class="input-group-btn">
    <button name="scButtonMinus" class="btn btn-default btn-md scClick" style="background-color:#efefef;color:#999;margin-top:12px" title="Delete this Prerequisite Course" value=""><span class="glyphicon glyphicon-minus" aria-hidden="true"></span></button>
    <button name="scButtonPlus" class="btn btn-default btn-md scClick" style="background-color:#efefef;color:#999;margin-top:12px" title="Add another Prerequisite Course" value=""><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
  </div>
</div><!-- end input-group -->

这是jQuery

$( '.scClick' ).on( 'click', function( event ) {
  console.log($(this).attr('name'));
  if( $( this ).attr( 'name' ) == 'scButtonMinus' ) {
    console.log($( this ).closest( 'input' ).val()); // returns "undefined"
    console.log($( 'input[id=summerCourses1]' ).val()); // returns "undefined"
    console.log($( this ).prevAll( 'input' ).val()); // returns "undefined"
    console.log($( this ).parent().find( 'input' ).val()); // returns "undefined"

    console.log($( this ).closest( 'input' ).attr('class')); // returns "undefined"
    console.log($( 'input[id=summerCourses1]' ).attr('class')); // returns "undefined"
    console.log($( this ).prevAll( 'input' ).attr('class')); // returns "undefined"
    console.log($( this ).parent().find( 'input' ).attr('class')); // returns "undefined"

    $( this ).closest( 'input' ).val( '' );
    $( 'input[id=summerCourses]' ).val( '' );
    //$( this ).closest( "div.input-group" ).addClass( "hideContentBlock" );
  }
  return false;
});

所有控制台日志条目都返回“undefined”

1 个答案:

答案 0 :(得分:0)

您必须从closest()的公共父级和目标元素中调用$(this)closest()向上遍历DOM,即它找到父母,find()找到孩子。

$(this).closest('.input-group').find('input').val()