2016-10-19 2 views
1

테이블의 특정 값을 다른 값으로 바꿀 스크립트를 만들려고합니다. 잘 작동하는 HTML 테이블을 생성했습니다. 나는 "값을 1/8로 처음 3 각 행에 4 열에서 요소를 교체 할 수 있습니다.루프 if 문은 ==을 인식하지만 <자바 스크립트에서는 그렇지 않습니다.

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i < 3) { 
    cells[3].innerHTML = '1/8"'; 
} 
} 

그러나 다음 코드를 내 테이블에 대해 아무것도 사용하지 않는 4를 위의 코드를 대체합니다 사용 ? 내 가치 요소 작업을 ==하지만 <하지 않는 이유는 무엇

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i == 3) { 
cells[3].innerHTML = '1/8"'; 
} 
} 

For 루프의 출력을 인쇄 할 수있다 쉬운 방법이 있습니까 그래서 더 쉽게 디버깅 할 수 있습니다 - 새로운 임 감사를 코딩

.!

편집 : 다음은 CSS와 함께 사용중인 HTML입니다.) 아마 필요가 없습니다

HTML5 :

<div class="eo_product_listing_table"> 
<table class="tableizer-table"> 
<thead> 
    <tr class="tableizer-firstrow"> 

    <th>Item #</th> 
    <th>Type</th> 
    <th>Operting Temp.</th> 
    <th>O.D.</th> 
    <th>Length</th> 
    <th>Material</th> 
    <th>Junction</th> 
    <th>Price</th> 
    <th>Order</th> 
    </tr> 
</thead> 

<tbody> 
    <!--1/8--> 
    <!--6--> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$51.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$51.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <!--12--> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$55.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <!--18--> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$57.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$59.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$57.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
</tbody> 

CSS3 루프의 처음 세 개의 반복을 위해

.eo_product_listing_table {} 

.tableizer-table tr:nth-child(even) { 
    background-color: #eee; 
} 

table.tableizer-table { 
    font-size: 12px; 
    border: 1px solid #CCC; 
    font-family: Arial, Helvetica, sans-serif; 
    color: black; 
} 

.tableizer-table td { 
    padding: 4px; 
    margin: 3px; 
    border: 0px solid #CCC; 
    text-align: left; 
    color: black; 
} 

.tableizer-table th { 
    background-color: #104E8B; 
    color: #FFF; 
    font-weight: bold; 
    text-align: left; 
} 

.tableizer-firstrow { 
    background-color: #000; 
    color: whtie; 
} 
+1

'console.log'는 스크립트를위한 디버깅 정보를 출력하는 가장 좋은 방법입니다. 콘솔은 코드에서 발생하는 처리되지 않은 오류를 찾을 수있는 곳이기도합니다. – meagar

+1

각 행에 적어도 네 개의'td'가 있습니까? 오류가 있습니까? 디버거를 사용해 보셨습니까? – Luaan

+0

@Luaan 나는 코드가 내가 생각하는 방식대로 선택하지 않는 한 각 행에 9 개의 tds가 있다고 믿는다. –

답변

0

모든 <tr> 태그의이 @Luaan 말처럼을 위해 스크립트를 사용 - HTML 파일로 본다. 즉, 양식 1을 계산하고 0을 작성하지 않아야합니다. 그러면 모든 것이 정상적으로 작동합니다. 좋아

var rows = document.getElementsByTagName('tr'); 

for (var i = 1; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i < 4) { 
cells[3].innerHTML = '1/8"'; 
} 
} 
+0

오, 와우, 바보가 되네요, 감사합니다 !! –

+0

내가 도와 준다면 내 게시물에 투표 할 수 있습니까? , – andfra

+0

Ofc, 나는 당신의 대답을 받아 들였지만, 나는 나의 상향식을 볼 때 15 명의 담당자가 필요하다고 말한다. 고마워, 나는 크게 도움을 주겠다. –

0

(i < 3) 당신은 단지를 설정하는 동일한 셀의 innerHTML ~ '1/8"' 몇 번이고 반복해서.

어쩌면 당신은 할 의미하는 것 :

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
    var cells = rows[i].getElementsByTagName('td'); 
    if (i < 3) { 
    cells[i].innerHTML = '1/8"'; 
    } 
} 
+0

셀을 변경함으로써 행의 td가 변경됩니다. 나는 항상 각 행의 네 번째 요소를 변경하려고합니다. 그러므로 왜 내가 세포라고 생각했는지 [3]. 그러나 나는 다른 행의 묶음에서 네 번째 요소를 변경하고 싶다.내 생각은 if 문을 검사하는 for 루프를 통해 실행하고 각 행에 대해 <3을 통해 실행하면 원하는 행의 네 번째 요소를 원하는 값으로 바꿉니다. 그럴 경우 –

+0

@MatthewSirkin 원하는 경우 첫 번째 세 개의 행 모두 네 번째 셀에 '1/8'이 있습니까? – theonlygusti

+0

네, 3/8 "값이 1/8로 바뀌면 각 행의 3 행마다 정확합니다. 실제로이 작업을 수행하려고합니다. 중첩 된 루프가 많지만이 기능을 사용할 수 있다면 나머지를 스스로 할 수 있다는 것을 확신합니다. –

0

, 지금 당신은 당신의 HTML을 게시 한 것으로, 오류가 당신이 처리되지 않은 오류와 함수 휴식을 얻을 수 있도록, 어떠한 td의 포함되어 있지 찾아 첫 번째 tr : 일반 광경입니다.

theader 또는 tfooter 일 수있는 행을 제외하고 tbody 행만 검색하면됩니다. 또한 일반적으로 전체 문서의 모든 행이 아닌 특정 테이블의 행을 반복하는 것이 좋습니다. 특정 tbody에게 ID를 부여하고 직접 액세스하여 모든 문제를 피할 수 있습니다.

+0

그건 내 HTML에서 의미가있다. 나는 ould : –

+0

그리고 getElementsById를 사용하겠습니까? –

+0

@MatthewSirkin 거기에는 몇 가지 다른 방법이 있습니다. 오래된 브라우저를 지원할 필요가 없다면,'document.querySelectorAll ("# tableBody tr")'이 아마도 가장 잘 작동 할 것이다. 그렇게 할 수 없다면,'document.getElementsById ("tableBody"). getElementsByTagName ("tr")'잘 동작 할 것이다. – Luaan

관련 문제