2009-05-28 3 views
0

저는 전통적으로 JavaScript를 "UI Glue"로 사용했으며, JS를 "장난감"으로 본 사람들 중 한 명이었습니다 (유감스럽게도). 그러나, 나는 코스를 바 꾸었으며 특히 JSON/jQuery와 함께 사용할 때 실질적인 힘을 찾고 있습니다.DOM에 삽입 한 후 요소에 대한 참조 유지

제 질문은 요소를 동적으로 생성 한 다음 DOM에 추가하는 것입니다. 이런 일이 발생하면 개체의 복사본 만 DOM에 추가되고 해당 개체에 대한 참조가 손실됩니다. 예를 들어 createElement (예 : "a")를 사용하여 전역 객체를 만들고 몇 가지 속성 ("href", "title"등)을 설정 한 다음 DOM에 추가하면 전역 객체에 대한 원래 참조 추가 된 요소에 영향을 미치지 않습니다. 방금 삽입 한 물건을 찾을 수있을 것이라고 확신하지만, 이것이 꼭해야 할 일보다 더 많은 것 같습니다. 내가 놓친 게 있니?

답변

0
var new_div = document.createElement('div'); 
new_div.id = 'foo'; 

편집 : 질문을 다시 읽으십시오. appendChild 후에 new_div가 작동하지 않는다고 말씀 하시겠습니까? 나는 그것이해야한다고 확신한다. innerHTML이나 이상한 것을 통해 추가하지 않습니까?

어쩌면 당신의 var이 당신이 그것을 읽으려는 곳에서 벗어나고있을 수도 있습니다. (즉, 한 기능으로 작성하고 다른 기능에서 읽는 중입니까?). 객체를 전역 적으로 선언 해보십시오.

+0

문제점을 발견했습니다. 이상하게도 "setAttribute"를 사용하여 객체의 속성을 설정하려고했습니다. IE는 매우 많은 것을 좋아하지 않습니다. 객관적으로 드릴 다운하여 문제를 해결했습니다. 예를 들어 el.style.color = 'green'이 작동하고 el.setAttribute ("style", "color : green;")가 실패합니다. – BradBrening

+0

예, 8보다 이전의 IE 버전이 지원하지 않는 HTML 속성이 일부 있습니다 (특히 클래스 및 스타일). 그러나, 그것은 크게 non-issue가되어야합니다. 스타일 속성은 elem.style 속성을 통해 설정해야하며 클래스는 elem.className 속성을 통해 설정해야합니다. –

0

원본, 글로벌 참조는 여전히 잘 작동해야합니다. 너는 그걸로 무엇을 하려니? 예제 코드가 있습니까?

0

는 네이티브 DOM 객체를 포장하는 라이브러리 또는 무언가를 사용하고 있습니까?이

0

모든 객체는 자바 스크립트에서 참조에 의해 전달하고, HTMLNodes도 예외는 아니다 있습니다 ... 문제가 될 수 있습니다. 원래 참조는 다른 값을 지정할 때까지 항상 작동해야합니다. 범위 문제가있는 것 같습니다. 코드를 볼 수 있을까요?

관련 문제