2012-02-23 5 views
1

안녕 얘들 아 여기 좀 도와주세요, addROW 함수를 사용하여 테이블에 새 행을 추가하지만 모든 새로운 행의 html 요소 이름을 변경하고 싶습니다 열. CODEJAVASCRIPT를 통해 새 행의 html 요소 이름을 변경할 수 없습니다

function addRow(tableID) { 

      var table = document.getElementById(tableID); 

      var rowCount = table.rows.length; 
      var row = table.insertRow(rowCount); 

      var colCount = table.rows[0].cells.length; 

      for(var i=0; i<colCount; i++) { 

       var newcell = row.insertCell(i); 

       newcell.innerHTML = table.rows[0].cells[i].innerHTML; 
       //alert(newcell.childNodes); 
       switch(newcell.childNodes[0].type) { 
        case "text": 
          newcell.childNodes[0].value = ""; 
          newcell.childNodes[0].name = "newratings" //this doesnt work 

          break; 
        case "a": 
          newcell.childNodes[0].value = "Delete Course"; 
          break; 
        case "select-one": 
          newcell.childNodes[0].selectedIndex = 0; 
          newcell.childNodes[0].name = "newcourses" //this doesnt work 
          break; 
       } 
      } 
     } 
+0

오류가 있습니까? 이 기능 후에 무슨 일이 일어날까요? – sgowd

+0

이 함수는 완벽하게 작동하지만 새로운 html 요소의 이름을 확인할 때 같은 이름으로 유지됩니다. –

+1

이 경우에 들어갑니다. 경고 했니? – sgowd

답변

2

setAttribute 기능의 사용을 고려 했습니까? 시도해보십시오.

.....childNodes[0].setAttribute("name", "yourName"); 

예를 들어 작동하지만 시작하려면 더 많은 검색이 필요할 수 있습니다.

한 가지주의해야 할 점은 자식 노드는 태그, 텍스트 노드 또는 주석일 수있는 모든 자식 노드 가능성의 컬렉션을 반환하므로 더 나은 옵션은 getElementsByTagName()을 대신 사용하는 것입니다.

+0

setAttribute 옵션도 작동하지 않는 것 같습니다.이 경우 "text"를 시도했습니다. newcell.childNodes [0] .value = ""; newcell.childNodes [0] .setAttribute ('name', 'newrating'); 휴식; –

+0

setAttribute의 매개 변수는 큰 따옴표로 묶어야합니다. 그 위치에 이미있는 요소 이름을 알려 주실 수 있습니까? 당신이 당신의 childnodes에서 가지고있는 어떤 옵션을 출력한다면 당신은 당신이 변경할 수있는 것을 볼 수 있습니다. – CSharpened

+0

시도해 볼 수 있습니다. var elementVar = newcell.childNodes [0] .getElementsById ("td") [0]; elementVar.setAttribute ("name", "yourName"); – CSharpened

0

이 답변에 추가 한 예를 보겠습니다. 텍스트 요소 이름을 설정한다고 생각합니다.

JsFiddle

+0

이것은 행의 모든 ​​셀의 이름을 같은 이름으로 설정합니다. 서로 다르게 설정하려고합니다. –

관련 문제