2016-10-05 1 views
0

<section> 태그가 여러 개인 페이지가 있습니다. 각 태그에 고유 한 ID를 할당하고 싶습니다.자바 스크립트로 여러 개의 태그에 고유 한 ID를 설정하는 방법

<body> 
<button id="set" onclick="setIds()">SET</button> 
<div id="d1"> 
    <section>1</section> 
    <section>2</section> 
    <section>3</section> 
    <section>4</section> 
    <section>5</section> 
    <section>6</section> 
<div id="demo"></div> 
<script> 
var sec = document.getElementsByTagName('section'); 

    function setIds(){ 
    for(var i = 0; i < sec.length; i++){ 
     console.log(sec[i].id); 
     var secId = 0; 
     secId += 1; 
     sec[i].id = secId; 
    }} 
</script> 
</body> 

저는 아직 자바 스크립트를 배우므로이 코드를 사용해 보았으며 모든 섹션에 동일한 ID를 추가합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

답변

3

각 루프를 secId에서 0으로 재설정했기 때문입니다. 당신은 루프 외부에서 선언하고 각 루프를 증가하면 작동합니다 : 당신은 당신의 for 루프에서 secId 때마다 재설정하는

var secId = 0; 
for(var i = 0; i < sec.length; i++){ 
    console.log(sec[i].id); 

    secId += 1; 
    sec[i].id = secId; 
} 
+1

yes이고'secId'는'i'와 동일하므로 필요하지 않습니다. –

+0

알았어, 고마워. –

1

. 그래서 항상 1이 될 것입니다. 그러지 마. 사실, 당신은 당신의 배열 색인을 가지고 있기 때문에 전혀 secId이 아닙니다. 그래서 루프에서 당신은 같은 것을 할 수있는 :

sec[i].id = "section_" + i; 

을 또는 당신은 정말는 1에서 시작하려는 경우 : 사용해서 내가 section_의 접두사를 추가

sec[i].id = "section_" + (i+1); 

그냥 숫자입니다 비슷한 코드를 여러 비트 사용하면 충돌이 발생할 수 있습니다.

+0

ID없이 마지막 섹션 만 남기고 싶다면 어떻게해야합니까? –

+0

@ELS : 1) 왜 지구상에 중요할까요? 그리고 2) 그냥 마지막에 ID를 설정하지 마십시오. 마지막으로 건너 뛰려면'i

+0

시간 내 주셔서 감사합니다. –

1

이 줄을 루프 바깥에 넣으십시오. var secId = 0; 은 looop을 입력하고 변수를 선언 할 때마다, 0, add (1)을 설정하고 새로운 섹션으로 설정합니다.

관련 문제