1

この jQuery セレクターを記述するより良い方法は次のとおりです。

// this is called when .nextButton is invoked.
$(this).parent('.question').children('.options').children('.options > li').children('.selected').parent('li').attr('id'));

HTML:

    <div class="question" id="question1">
      <p>What is your age:</p>
      <ul class="options question1Options">
        <li id="q1-1"><div class="radio"></div>10-20.</li>
        <li id="q1-2"><div class="radio"></div>21-30.</li>
        <li id="q1-3"><div class="radio"></div>31-40.</li>
      </ul>
      <div class="nextButton"></div>
    </div>

ユーザーがこれらの li の 1 つをクリックすると、選択されたクラスが追加されます (ラジオ ボタンのように、1 つだけが選択されます)。選択したラジオ/リの ID を取得しようとしています。ありがとう。

4

3 に答える 3

2

これを試して

$(this).closest('div.question').find('.radio.selected').closest('li').attr('id');

フィドル

于 2012-10-17T20:29:40.777 に答える
1

削減されたコード:

$(this).siblings('.options').find('.selected').parent('li').attr('id');
于 2012-10-17T20:27:51.847 に答える
1

あなたの意図を正しく理解している場合:

$('.radio').on('click',function(e) {
    $(this).closest('li').toggleClass('selected').siblings().removeClass('selected');
});

http://jsfiddle.net/mblase75/edKM6/

于 2012-10-17T20:40:40.783 に答える