>

defect_type이 선택된 해당 행의 '결함'클래스에 jquery의 응답을 표시하고 싶습니다. jquery 요청이 정상적으로 작동하고 응답이 수신되었지만 td 부분이나 t의 div 안에 표시 할 수 없습니다. 성공 섹션에서 작성한 코드 줄이 작동하지 않습니다.

<html>
    <body>
        <table>
            <tr>
                <td>
                    <select class="form-control defect_type" onChange="get_defects(this.value)">
                    <option>1</option>
                    <option>2</option>                                                   
                    </select>
                </td>   
                <td class="defects"></td>
        </tr>
        <tr>
            <td>
                <select class="form-control defect_type" onChange="get_defects(this.value)">
                    <option>1</option>
                    <option>2</option>                                                   
                </select>
            </td>   
            <td class="defects"></td>
        </tr>
    </body>
    <script>    
        $(".defect_type").change(function(){
            if(this.value==""){
                alert("Select Defect Type");
                return;
            }
            $.ajax({
                type: 'post',
                url: '../ajax/get_defects.php',
                data: {
                    defect_type: this.value
                },
                success: function (response) {
                    $(this).closest('tr').find('.defects').html(response);  
                    $(this).closest('tr').find('.defects').text(response);
                }
            });
        });
    </script>
</html>

  • 답변 # 1

    문제: 성공 함수 내의 $(this)는 변경된 요소를 참조하지 않습니다. AJAX를 말합니다.

    해결책: $(this)를 변수에 할당 한 다음 대신 변수를 사용하십시오.

       $(".defect_type").change(function(){
            if(this.value=="") {
              alert("Select Defect Type");
              return;
           }
           var me = $(this);  // <-- create the var
           $.ajax({
               type: 'post',
               url: '../ajax/get_defects.php',
               data: {
                    defect_type: this.value
               },
               success: function (response) {
                   me.closest('tr').find('.defects').html(response);  // <--use the var here
                   me.closest('tr').find('.defects').text(response);  // <--use the var here
               }
           });
        });
    
    

관련 자료

  • 이전 자바 스크립트에서 하이픈 후 문자열을 대문자로
  • 다음 postgresql - DB2에서 postgres로