2010-02-02 9 views
7

jQuery를 사용하여 테이블 행을 제거하려고하는데 화면에서 사라져서 작동하는 것처럼 보이지만 Firebug에서 여전히 코드를 볼 수 있습니다. 이 행에는 양식 요소가 있으므로 제출 된 값을 원하지 않기 때문에 행이 실제로 삭제되는지 여부를 이해하고 싶습니다. 그래서, 정말 제거 제거합니까? 아래 코드는 제가 사용하고있는 코드입니다 ... 어쩌면 내가 잘못하고있는 것일까 요?jQuery ::: 정말로 제거 하시겠습니까?

if($('.delete')) { 
      $(".delete").live('click', function(event) { 
       $(this).closest('tr').remove(); 
      }); 
     } 

답변

9

페이지의 소스가 Javascript 기능으로 업데이트되지 않습니다. Firebug에서 DOM을 검사하면 변경 사항이 반영된 것을 볼 수 있어야한다.

+0

나는 방화범이 끌리는 것을보고있다 ... 그리고, 나는 아직도 그 특별한 제거를위한 코드를 보았다. 그래서, 아마도 내가하는 일에 뭔가 문제가 있을까요? 내가 게시 한 내용이 분명합니까? – phpN00b

+0

소스가 아닌 DOM을보고 있습니까? – cjk

+0

ck의 메모에 대한 설명을 위해 살아있는 DOM은 Firebug의 메인 윈도우에있는 트리에서 구문 분석되고 구조화되어있는 반면, HTML 섹션이나 스크립트 섹션에서 볼 수있는 코드는 초기에로드 된 정적 HTML입니다. JS 변경 사항이 구조에 적용될 때마다 변경되는 영역에 노란색 강조 표시가 나타납니다 (결과적으로 트리 위쪽까지). – dclowd9901

0

예, jQuery의 remove()은 실제로 DOM에서 요소를 제거합니다.

코드에 문제가있을 수 있습니다.

1

DOM에서 요소를 완전히 제거합니다. 실제로 화면에서 제거되는 경우, 방화범이 그 변화를 반영해야하기 때문에 잘못된 요소를보고있을 수도 있습니다.

코드가 정상적으로 보입니다. 맞아

.Remove() Reference

1

. remove() 메서드는 요소를 제거하지 않습니다. "jQuery in Action"에서 "다른 많은 jQuery 명령처럼이 명령의 결과로 래핑 된 집합이 반환된다는 점에 유의하십시오. DOM에서 제거 된 요소는 여전히이 집합에서 참조됩니다 (따라서 아직 가비지 수집을위한 제한) 다른 jQuery 명령을 사용하면 추가로 조작 할 수 있습니다 ... " 검색 중이 었으며 실제로 요소를 제거하는 jQuery가 아닌 것 같습니다. 그래서 이전 DOM JavaScript 함수를 사용하여 수행해야한다고 생각합니다.

0

예.

나는 그날 같이 놀고있었습니다. 불량 버그 (및 다른 브라우저 디버거)에서 요소가 사라지는 것을 볼 수 있습니다.

관련 문제