我无法获得输入字段的值 - 一遍又一遍地尝试。
这是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”
答案 0 :(得分:0)
您必须从closest()
的公共父级和目标元素中调用$(this)
。 closest()
向上遍历DOM,即它找到父母,find()
找到孩子。
$(this).closest('.input-group').find('input').val()