2012-06-14 3 views
2

내 HTML 구조는 다음과 같은 형태 TD의 내용을 확인하는 방법은 다음과 같습니다jQuery를 선택기

<div id="mainDiv"> 
<table></table> 
<table></table> 
<table> 
<tr> 
<td id="first">FirstCell</td><td id="second">SecondCell</td> 
</tr> 
<tr> 
<td></td><td></td> 
</tr> 
</table> 
</div> 

지금 내가 먼저 TD의 값에 따라 두 번째 TD의 콘텐츠를 찾을 싶습니다.

나는 다음과 같이 시도했지만 작동하지 않는 것 같습니다.

$("#mainDiv tr td:contains('first')").each(function(){ 
       var secondCell = $(this).find('#second').value(); 
      }); 

모든 도움을 주실 수 있습니다.

+1

'var secondCell = $ (this) .find ('# 초') .var secondCell = $ (this) .next(). text();' –

답변

3

당신의 HTML 구조를 기반으로 대신 .text()를 사용하는 함수가 아닌 당신이 좋아하는 @Blender가 .value() 말했다이

$("#mainDiv tr td:contains('First')").each(function(){ 
       var secondCell = $(this).next().text(); 
       console.log(secondCell); 
      });​ 

Working Fiddle

처럼 원하는 것을 얻을 수 있습니다.

0

.value()은 기능이 아닙니다. 아마도 .text()을 찾고 있습니다.

구조를 보면 #first을 기준으로 #second을 찾고 있음을 알 수 있습니다. id="second"을 가진 여러 요소가 있습니까? 그렇다면 id 속성은 단일 요소에 고유해야하기 때문에 의 jQuery로 문제가 발생할 것입니다. 두 개 이상의 요소를 식별하는 데 속성을 사용하는 경우 id 대신 class을 사용해야합니다.

1

값은 유효한 방법이 아닙니다.

요구 사항에 따라이 중 하나를 사용해야합니다.

.html() // for html content. 
.text() // for text content. 
.val() // for value attribute. Like value of input element. 
+0

.val()'을 열거하십시오. 이 함수는 입력 요소에만 사용되며 사람들을 혼란스럽게합니다. – Blender

+1

나는 코멘트에서 언급했다. –

0

대신에 id의, each를 사용하는 등, 클래스 이름을 사용한다,이 시도 :

찾을 말을
$("#mainDiv tr td:contains('first')").each(function(){ 
    var secondCell = $(this).siblings('.second').text(); 
}); 
0

, 당신은 정규식을 사용하여 의미합니까? 또는의 첫 번째 관계.

관계에 의해, 다음이

$("#mainDiv tr td:contains('first')").each(function(){ 
      var secondCell = $(this).next().html(); 
     }); 

는 .text를 작동 할 경우()가 .html 중에서보다 때로는 더 나은() 당신이 무엇을하고 있는지에 따라 달라집니다. 작업 예 및 자세한 내용은 here을 참조하십시오.

Regex로, 당신이 찾고있는 것을 첫 번째 <td>에 제공해야합니다.