2012-05-04 4 views
0

У меня этот div ниже, где при выборе переключателя CFGID я должен иметь возможность получать одинаковые значения строк. например: testDev, indi и т.д. значенияКак получить значения td при выборе переключателя с помощью jquery?

<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> 

Так на кнопку мыши, я написал эту

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

, но это дает мне пустой. Пожалуйста, помогите мне получить все значения. Thanks

ответ

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> «ы, которые содержат текст является next() элементами на родительском , а не на input (input не имеет братьев и сестер).

Обратите внимание, как вы можете использовать $(this) внутри обработчика события для ссылки на выбранный элемент, а не $("input[name='CFGID']:checked"). Также посмотрите, как я использовал делегирование событий через on(), поскольку привязка одного и того же события к нескольким элементам - это плохая практика.

Читайте на on(), parent(), nextAll(), map() и get() видеть их использование.

+0

Радио не имеют 'onselect' событие. Не должно быть '.on ('change''? –

+0

@Rocket: Спасибо;) – 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()); 
}); 
Смежные вопросы