2012-02-29 8 views
3

예 :id 또는 name의 값을 변경하는 방법은 무엇입니까?

<table id ='table'> 
<tr> 
<td>1</td> 
<td><select id='old' name='old'></select></td> 
<td><select id='old2' name='old2'></select></td> 
<td><div id='old3' name='old3'></div></td> 
</tr> 
</table> 

어떻게 식을 선택 = 선택 ID에서 '이전을'ID 또는 이름의 값을 변경하는 '새로운'(예를 들어) 자바 스크립트의 행을 삭제 후? getElementById ('old') = 'new'를 시도하는 것과 같은 모든 메소드를 시도했지만 replaceChild가 작동하지 않습니다 (또는 잘못된 코드를 넣었거나 생각하지 않았습니다). 다른 대안이 있습니까? (아니 JQuery, 제발).

감사합니다.

+0

다른 행의 번호 매기기가 변경되어야하는지 언급하지 마십시오 – ninjagecko

+0

jquery가없는 이유는 무엇입니까? –

+0

@ninjagecko 오 예 예를 들어 new2로, old3에서 new3으로 변경하면 다른 행도 변경됩니다. – candies

답변

3

는이

document.getElementById("old").setAttribute("id","new"); 
document.getElementById("new").setAttribute("name","new"); 
+0

_ 초선에서 나는 _first 행에 할당 된 새 ID에서 요소를 호출했습니다. _ – blackpla9ue

+0

아마도 ID가 변경되었음을 보여주기 위해 그렇게했을 것입니다. 변수에 초기 요소 참조를 저장 한 다음'.getElementById()'를 다시 호출하는 대신 해당 변수에서 두 속성을 모두 설정 하시겠습니까? – nnnnnn

+0

예. ID가 변경되었으며 문제없이 할당 한 새 ID로 액세스 할 수 있음을 보여 드렸습니다. 하지만 당신이 말했듯이 ref를 저장하고 두 속성을 모두 저장하는 것이 더 좋습니다 :) – blackpla9ue

1
var sel = document.getElementById("old"); //Reference the element 
sel.id = "new"; //set the id 
+0

우리가 할 수있는 이런 식으로 예. –

1

이 시도 달성하기의 setAttribute 메소드를 사용할 수 있습니다

document.getElementById("old").name = 'NewName'; 
alert(document.getElementById("old").name); 
document.getElementById("old").id = 'Newid'; 
alert(document.getElementById("Newid").id); 

작업을 나를 위해.

1

나는 여기에 뭔가 감동적이라고 느낍니다. 당신이 우리에게 더 말하면 우리는 그것을 할 수있는 "올바른 길"을 말할 수있을 것입니다. 그럼에도 불구하고 당신이하고있는 일을 할 수있는 아주 좋은 이유가 있다면,이 코드 스 니펫을 당신이 모든 변화를 만들었다 고 부르면됩니다. 행의 모든 ​​요소를 ​​올바른 번호 매기기로 업데이트합니다.

var formElements = document.getElementById('table').getElementsByClassName('toUpdate'); 
for (var i=0; i<formElements.length; i++) { 
    var e = formElements[i]; 
    e.id = 'new'+i; 
} 

각각에 class="toUpdate ..."을 추가하지 않으려는 경우에는 이에 대한 변형이 많이 있습니다. 예를 들어 정규 양식 요소를 사용하는 경우 <form>의 요소를 반복 할 수 있습니다. 또는 모든 요소를 ​​반복하고 이름 또는 ID에 패턴 일치를 수행 할 수 있습니다. 또는 자바 스크립트로 이것을 알고리즘 적으로 생성하는 경우 나중에 사용할 수 있도록이 요소를 DOM에 추가 할 때 배열에 각 요소를 추가 할 수 있습니다 (예 :이 업데이트).

관련 문제