0

ドロップダウンが関連付けられたチェックボックスの列があります。選択したチェックボックスの対応するドロップダウンの値を返すにはどうすればよいですか?

http://jsfiddle.net/Gqzhq/21/

$('input[name=options]').live('click', function() {

    if($(this).hasClass('checked'))
    {
    $(this).removeClass('checked');

    }else{
    $(this).addClass('checked');

    }

    });

HTML

<table id="test" summary="test">
<th>A</th> <th>B</th><th>C</th>

<tr>
<td><input type="checkbox" name="options" id="1" value="500">
      <select class="my_select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option></td>
    <td><input type="checkbox" name="options" id="2" value="500">
    <select class="my_select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option></td>

    <td><input type="checkbox" name="options" id="3" value="500">
    <select class="my_select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option></td>

    </tr>

    </table>
4

2 に答える 2

2

を使用して選択をターゲットにするsiblings()か、親に移動して をTD使用できますfind()。またlive()、非推奨ですon()。代わりに使用してください。

あなたが使用するtoggleClass()場合は、あなたを削除することができますif($(this).hasClass('checked'))

$(document).on('click', 'input[name=options]', function() {){
    /* "this" within the handler refers to current input*/

   var selectVal= $(this).siblings('select').val();
             /* OR */
   var selectVal= $(this).parent().find('select').val();

   /* second argument determines  whether to add or remove*/ 
   $(this).toggleClass('checked', this.checked);

});

API リファレンス:

http://api.jquery.com/siblings/

http://api.jquery.com/toggleClass/

http://api.jquery.com/on/

于 2012-11-20T21:12:00.263 に答える
0
$('input[type=checkbox]').click(function() {
    if($(this).attr('checked')) 
        alert(
                'value of combo ' + 
                 $(this).attr('id') + ' is ' + 
                 $(this).next('.my_select').val()
             );
});

あなたの例を変更しましたhttp://jsfiddle.net/Gqzhq/27/

于 2012-11-20T21:26:55.183 に答える