16908


以下の様なhtmlからjQueryを使用し、Radioのインデックスを取得したいです。  
Optionタグのvalueからインデックスを取得しようとしています。例えばvalue=S1の場合、インデックスは0,
value=S2、またはS3の場合は1となります。

[code]

    <tr>
      <td>
        <div class="radio-group-wrapper">
          <label>
            <input type="radio" name="MT" value="ST" checked="checked">TEST1
          </label>
          <select name="SID" class="select-sid">
            <option value="S1">BASIC</option></option>
          </select>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div class="radio-group-wrapper">
          <label>
            <input type="radio" name="MT" value="ST" checked="checked">TEST2 
          </label>
          <select name="SID" class="select-sid">
            <option value="S2">OP1</option></option>
            <option value="S3">OP2</option>
          </select>
        </div>
      </td>
    </tr>
    
[/code]

試しに以下のjQueryを試しましたが取得できませんでした。

[code]

    var index =
    $('option[value=S1]:first').parent('select[name="sid"]').prev('label').children('input[name="MT"]:checked').index();
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2015-09-24T17:04:38.170
16906
2015-09-24T22:16:50.670
9577
question
jquery html
親要素の値からjQueryでRadioのインデックスを取得したい


  
`index()` は要素の集合に適用するメソッドで、その集合の中で何番目か知りたい要素は引数で与えます。  
`option[value=S1]:first`の先祖の`.radio-group-wrapper`が文書全体で何番目の `.radio-group-
wrapper`か知りたい場合は、以下の様になります。

[code]

    var index = $('.radio-group-wrapper').index(
        $('option[value=S1]:first').parents(".radio-group-wrapper"));
    
[/code]

分けて書くとこんな感じです。

[code]

    // 'option[value=S1]:first' で選択される要素の集合（一つ）
    var option = $('option[value=S1]:first');
    
    // option の親の集合の中で、'.radio-group-wrapper'で選択される要素の集合（一つの予定）
    var radio = option.parents('.radio-group-wrapper');
    
    // 文書全体で、'.radio-group-wrapper' で選択される要素の集合
    var all_radio = $('.radio-group-wrapper');
    
    // all_radio 内での radio のインデックス
    var index = all_radio.index(radio);
    
[/code]


CC BY-SA 3.0
2015-09-24T22:16:50.670
16908
2015-09-24T22:16:50.670
3054
16906
answer