2011-07-28 4 views
0

나는 모질라 디렉토리에 파이어 폭스 애드온를 제출하고 그것은 이것 때문에 거부 :자바 스크립트, DOM :에 appendChild와는 TextContent

item.innerHTML = '<table style="border-collapse: collapse; width: 100%;">' 
        + '<tr><td style="line-height: inherit; padding: 0pt; width: 100%;">' 
        + word.title 
        + '</td></tr>' 
        + '</table>'; 

내가 편집자에게 말씀 그는 나에게 말한다에 "use a text node and then insert it using appendChild, textContent, etc"

저에게 총 횡설수설처럼 들리는데, 나는 결코 TextContent, appendChild 등을 사용하지 않았으며 조금 손실되었습니다. 위의 작업을 수행하는 방법을 보여 줄 수 있고 위 스크립트와 같은 다른 인스턴스 13 개를 편집 할 수 있습니까?

감사합니다.

+0

그는이 기술을 사용하여 HTML 코드를 삽입 할 수 있으므로 거부했습니다. – Pindatjuh

+0

나도 알아, 그가 내게 말했던 것 ... 나는 왜 그가 그것을 거절했는지 알지만, 그가 사용하라고 나에게 말한 다른 것들을 어떻게 사용하는지 모른다. 이것은 약간 도움이되는 것 같지만 : http://stackoverflow.com/questions/2962137/adding-new-elements-into-dom-using-javascript-appendchild – Ryan

답변

5

당신은 아마이 라인을 따라 뭔가를해야합니다

var t = document.createElement("table"), 
    tb = document.createElement("tbody"), 
    tr = document.createElement("tr"), 
    td = document.createElement("td"); 

    t.style.width = "100%"; 

    // note the reverse order of adding child   
    tr.appendChild(td); 
    tb.appendChild(tr); 
    t.appendChild(tb); 

    // more code to populate table rows and cells 
    item.appendChild(t); 

참고 : 일이 브라우저 사이에서 다르게 작동으로 테이블이 방법을 만드는주의 사항이 있습니다. 나는 FF에 관하여 확실히 MDN 상담을 제안 할 것입니다.

+0

좀 더 코드를 작성해 주실 수 있습니까? 스타일 속성까지만 알아 냈습니다. 그 다른 줄에있는 다른 것들은 ... 진행 방법에 대해 거의 생각하지 못했습니다. – Ryan

+0

내 대답이 업데이트되었습니다. 자세한 예제가있는 MDN 링크를 확인하십시오. – Mrchief

+0

태그를 닫으면 어떨까요? 그리고 t.style.wide cant 대신 t.style = "border-collapse : collapse; width : 100 %;"; – Ryan

3

그는 프로그래밍 방식으로 HTML로 자바 스크립트를 작성하기를 원합니다. read of this post을 가져 가면 문제가 해결됩니다. 자세한 정보가 필요하면 의견을 게시하십시오.

+0

그 게시물을 읽은 후에 나는 더욱 혼란 스럽다. ( – Ryan

2

innerHTML을 사용하는 대신 DOM을보다 직접 변경하는 기능을 사용하기를 원합니다. AppendChild

지정된 부모의 자식 목록 끝에 노드를 추가합니다. 노드. 노드가 이미이 현재 부모 노드에서 제거되어있는 경우, 새로운 부모 노드

https://developer.mozilla.org/En/DOM/Node.appendChild에 추가됩니다. 그것의 형식은 다음과 같습니다 인스턴스에서 var child = element.appendChild(child);

은 내가 할 것이다 : 당신이 innerHTML을 사용하려고 한 곳 locationInDom이

var newText = document.createTextNode(word.title); 
locationInDom.appendChild(newText); 

입니다. innerHTML이 테이블에 들어가면 특정 기존 컬럼에 id를 추가하고 getElementById 메소드를 사용하여 그 시점에서 추가하십시오.

+0

이것은 내 정확한 코드 http://pastebin.com/L6hZHDLT이다.이 파일에는 innerHTML의 두 가지 물건 만있다. 대체 할 코드를 알려 주실 수 있겠습니까? 그 두? – Ryan

+0

실제로 거기에 테이블이 필요합니까? 그것은 테이블 형식의 데이터가? 항목으로 locationInDom 바꾸고 item.appendChild (newText); – scrappedcola

+0

사용 내 안의 코드 그래서 많은 변경, 다른 개발자, 나보다 훨씬 경험이 많았지 만 그는 아프다. 나는 이것이 승인을 통과했는지 확인해야한다. 그렇지 않으면 나는 망했다. – Ryan

관련 문제