2012-05-04 9 views
0

아래에이 div가 있습니다. CFGID 라디오 버튼을 선택하면 같은 행 값을 가져올 수 있습니다. 예를 들면 : testDev, indi 등 내가이jquery를 사용하여 라디오 버튼을 선택하면 td 값을 얻는 방법은 무엇입니까?

alert($("input[name='CFGID']:checked").next().text()); 

을 썼다

<div id="updateFormDiv"> 
     <table class="tableForms"> 
      <tbody> 
       <tr> 
        <th class="tableHeading"></th> 
        <th class="tableHeading">Name</th> 
        <th class="tableHeading">Host Name</th> 
        <th class="tableHeading">Description</th> 
        <th class="tableHeading">Type</th> 
        <th class="tableHeading">Last Update Time</th> 
       </tr> 
       <tr> 
        <td><input type="radio" name="CFGID" id="CFGID" value="11579"></input></td> 
        <td>testDev</td> 
        <td>indi</td> 
        <td>testDev</td> 
        <td>Development</td> 
        <td>Fri Apr 26 04:31:40 IST 2012</td>       
       </tr> 
      </tbody> 
     </table> 
    </div> 

그래서 버튼을 클릭하여 값 그러나 그것은 나에게 빈을 제공합니다. 각 값을 가져 오도록 도와주세요. 감사합니다.

답변

5

다음과 같이 시도해보십시오.

$(document).on('change', ':radio[name="CFGID"]', function() { 
    var arOfVals = $(this).parent().nextAll().map(function() { 
     return $(this).text(); 
    }).get(); 
}); 

arOfValues 다음 배열 될 것 같은 ['testDev', 'indi', 'testDev', 'Development', 'Fri Apr 26 04:31:40 IST 2012'] (즉, 해당 행에 대한 나머지 열에서 텍스트)

텍스트를 포함 <td> 's이 (가) next() 요소이기 때문에 당신의 선택은 작동하지 않았다 입력의 부모에는 input이 아니라 (input에는 형제가 없습니다).

이벤트 처리기 내에서 $(this)을 사용하여 $("input[name='CFGID']:checked")이 아닌 선택한 요소를 참조하는 방법에 유의하십시오. 또한 동일한 요소를 여러 요소에 바인딩하는 것이 좋지 않은 방법이므로 on()을 통해 이벤트 위임을 사용한 방법을 확인하십시오.

on(), parent(), nextAll(), map()get()을 읽고 용도를 ​​확인하십시오.

+0

라디오 버튼은'onselect' 이벤트가 없습니다. '.on ('change'')이 아니어야합니까? –

+0

@Rocket : Thanks;) – Matt

+0

@Matt 아주 좋은 정보에 감사드립니다. 그것은 완벽하게 일했습니다. – abi1964

0

이 시도 :

var texts = []; 

$("input[id='createRad']:checked").siblings("td").each(function(i, v){ 
    texts[i] = $(this).text()   
}); 
0
$("input[name='CFGID']").on('change', function() { 
    console.log($(this).parent().nextAll('td').text()); 
}); 
관련 문제