2016-10-27 4 views
-1

아약스로 가져온 테이블과 동적 폼이 포함 된 페이지가 있습니다. 어떤 양식 제출 단추를 눌렀는지에 따라 각 표를 대상으로하려하지만 jquery가 표의 고유 ID를 보지 못하는 것 같습니다. jquery가 첫 번째 테이블의 ID 만 가져 오는 것 같지만 왜 이해할 수 없습니까? 모든 제출 버튼Jquery가 고유 ID를 보지 못하는 이유는 무엇입니까?

console.log(tableid) 인쇄 myTable1 내가 그러나 페이지의 HTML을 검사 키를 누릅니다 것은 myTable의 모든 아이디의 등등 예를 들어 myTable1,myTable2,myTable3 고유 ..... 것을 나에게 보여줍니다.

동적 형태와 테이블

<form id="myForm" class="myForm" action="" method="post" style=""> 

    <input type="hidden" name="page_id" value="'.$id.'"> 


    <button type="submit" class="fabutton"></i></button> 
</form> <!--END OF FORM----> 



<table id="myTable'.$i.'" class="table"><!--$i increments by 1 with each form----> 
    <tbody> 
     <tr> 
    </tr> 
</tbody> 
</table> 

당신이 var tableid = $('.table').attr('id');

을하기 때문에입니다

$(document).on('submit', '.myForm', '.results', function(e) { 

      var tableid = $('.table').attr('id'); //Get table id 

      console.log(tableid) 
+1

가 참조하는 것이 더 유용 할 것인가 ** 동적 코드가 아닌 HTML로 렌더링되었습니다. –

+1

또한 양식에 표가 포함되어 있지 않으므로 어떤 표를보아야하는지 어떻게 알 수 있습니까? 귀하의 jQuery 그냥 "첫 번째 테이블을 찾아 ID를 얻을"말한다. 그리고 그것은 .. 어떤 테이블을 가져야합니까? –

+0

$ ('. table')는 요소의 배열을 반환하므로 id를 얻으려고 할 때 첫 번째 요소 id – Geeky

답변

2

(형태와 테이블이 렌더링 다른 페이지에) JQuery와 이것은 아니다 현재 작업중인 양식으로 제한되지만 전체 문서에는 적용되지 않습니다.

업데이트 다음

var tableid = $(this).next(); 

원래 (.table 양식에 있지 않기 때문에 작동하지 않습니다) 할

.table 직접 양식 요소를 다음과 같은 경우

** 다음과 같이 테이블을 찾을 때

는 컨텍스트를 사용해보십시오 (양식 this 점, 그래서 그 형태.table를 찾습니다)

var tableid = $('.table', this).attr('id'); 
+0

또는 '$ (this) .next ('. table ')'. –

+0

사실 $ (this) .next ('. table')을 시도했지만 작동하지 않았습니다. 변수는 정의되지 않은 상태로 유지됩니다. var myform = $ (this) .attr ('id');을 추가해야합니다. 내가 기대했던 모든 고유 한 양식 ID를 보여줍니다. – JulianJ

+0

결국이 대답은 : var tableid = $ (this) .closest ("div"). find ("table"). attr ("id"); // 테이블 ID 찾기 – JulianJ

관련 문제