2016-08-23 4 views
0

첫 번째 행의 값이 "China"인 조건에서 세 번째 행의 값을 변경하려면 어떻게 greasemonkey를 사용합니까? 내가 찾은 다른 모든 대답은 요소 ID를 살펴 보는 것이지만 내 코드에는 아무 것도 없습니다.이전 요소의 값을 기준으로 테이블 값을 변경하십시오.

<td class="listRow listHighlight" align="center">101</td> 

    <tr id="country3" class="listRow"> 

     <td class="listRow listHighlight" align="center">China</td> 

     <td class="listRow listHighlight" align="center">Asia</td> 

     <td class="listRow listHighlight" align="center">31</td> 

    </tr> 

답변

1

사용 jQuery를 :contains() 선택과 next() : 첫 번째 셀이 China something 같은 China 제외하고는 작동하지 않습니다 선택 방법을 단어가있을 수 있습니다

var third = $('.listRow td:contains("China")').next().next(); 
if (third.text() === '31') { 
    third.text('32'); 
} 

경우, 당신은 정확한 비교를해야합니다. filter() 사용

var third = $('.listRow td:first').filter(function() { 
    return $(this).text() === 'China'; 
}).next().next().filter(function() { 
    return $(this).text() === '31'; 
}).text('32'); 

또는 결합 된 버전 :

var third = $('.listRow td:first').each(function() { 
    if ($(this).text() === 'China') { 
     var third = $(this).next().next(); 
     if (third.text() === '31') { 
      third.text('32'); 
     } 
    } 
}); 
관련 문제