2017-04-11 29 views
0

入力フィールドの値を取得できません - 何度も繰り返し試しました。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 --> 

は、ここであなたが$(this)の共通の親からclosest()を呼び出してする必要がありますすべてのコンソールログエントリが

+2

'$(this).closest( '入力グループ')。find( 'input')。val()' – empiric

+0

Oh My !!それがそれでした。ありがとう百万@ empiric! –

答えて

0

を "未定義" を返す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; 
}); 

だですターゲット要素closest()はDOMを上向きに横断します。つまり、親が見つかり、find()が子を検出します。

$(this).closest('.input-group').find('input').val() 
関連する問題