2013-07-08 3 views
2

저는 tr을 복제하고 데이터 ID 속성을 설정하고 있습니다. 그런 다음 해당 데이터 ID를 사용하여 모달을 열 수 있으며 사용자가 삭제 단추를 클릭하면 AJAX 호출을 사용하여 행을 삭제할 수 있습니다. 나는 데이터 ID를 전달하고 AJAX를 성공적으로 제출하고 항목을 삭제할 수 있지만 성공하면 행에서 제거를 시도 할 때 성공하지 못합니다.JQuery로 복제 된 요소를 제거하십시오.

var clone = $('#sizeValueTemplate').clone(true); 
clone.data('id', data.id); 
clone.removeAttr('id'); 
clone.show().appendTo('#sizeValueTable'); 

확인 모드가 표시되며 확인시 항목을 삭제합니다. 성공시 :

$('tr[data-id='+id+']').remove(); 
$('#modalDeleteSizeValue').modal('hide'); 

tr은 제거되지 않는다는 것 외에는 오류없이 작동합니다. 프로세스는 페이지로드에있는 요소에 대해 작동합니다.

+0

jsfiddle을 제공하십시오 : – OptimusCrime

답변

4

data 함수는 요소에 data- 스타일 특성을 추가하지 않으므로 사용자가이를 찾을 수 없습니다. 대신 clone.attr('data-id', data.id);을 시도 할 수 있습니다.

+0

그것을 설정하는 요소를 나타내는 메모리에있는 객체의 속성이지만, 그것은 요소에 속성을 추가하지 않습니다. 그래서'this.data ("id");로 값에 접근 할 수 있지만'data-id' 속성으로 요소를 검색 할 수 없습니다. – cfs

+0

방화범을 사용하여 요소 – cfs

+0

을 검사하면이 사실을 알 수 있습니다. 나는 방화 광복을 사용하고 있었지만 접근 할 수는 있지만 혼란스럽지는 않았다. 감사. – jabbermonkey

3

.data(key, value)을 사용하여 데이터를 설정하면 DOM에 삽입되지 않습니다. 당신은 .attr('data-...', value)을 사용해야합니다.

그래서,이 작동합니다 :

clone.attr('data-id', data.id); 
관련 문제