0

ラジオ ボタンのクリック イベントからリスト アイテムの ID を取得しようとしています。私は多くの記法を試しましたが、このハードルに行き詰まっているようです。どんな助けでも大歓迎です。

HTML:

<li class="option" id="100400" title=""> <!-- I NEED THE ID OF THIS LIST ITEM -->
    <h5 class="ui-widget-header">Option 1</h5>
    <font id="" class="repairDetails" alt="Repair Details" style=""></font>
    <font style=""></font><br />
    <label class="price">£49.99</label>
    <a class="ui-icon ui-icon-wrench dialog_but" title="View Product Detail" href="#" style="">View Product Detail</a>
    <div id="op1Dialog" class="dialog_content" title="" style="">
        <div class="products">
            <h1 class="ui-widget-header">Avaliable Bundle Options</h1>
            <font>You can customise this option below</font>
            <div class="pOptions">
                <h2 class="customOHeader"><a href="#">Handle</a></h2>
                <div>
                    <ul>
                        <button ID="Button1" class="handle-pre">
                            Add Handle Preferance
                        </button>
                    </ul>
                </div>

                <h2><a href="#">Blade Fittings</a></h2>
                <div>
                    <ul>
                        <li for="Radio1">
                            Clear Extratec Scuff Sheet
                            <input type="radio" id="Radio1" name="" value="" class="bladeCO"/> <!-- CLICK EVENT HAPPENS HERE -->
                        </li><br />
                    </ul>
                </div>
            </div> 
        </div>
    </div>  
</li>

jQuery:

$('.bladeCO').click(function(){
    var option = $(this).closest('.option').attr('id');
});

どうもありがとう。

4

2 に答える 2

1

このコードをドキュメント対応関数にラップするというadeneoのアイデアを反映するように、回答を変更しています。

$(function(){
    $('.bladeCO').click(function(){
        var option = $(this).closest('li.option').attr('id');
    });
});
于 2013-01-18T16:05:10.557 に答える
0

これを試してください:

$(document).ready(function() {
    $('.bladeCO').click(function(){
        var option = $($(this).parents("li.option")[0]).attr('id');

        console.log(option);
    });
});

この問題は、ここに表示されていない残りのコードが原因である可能性があります。li以外の要素が近くにある可能性がありますparent。このような:

                    <ul>
                        <li for="Radio1">Clear Extratec Scuff Sheet
                        <input type="radio" id="Radio1" name="" value="" class="bladeCO"/> CLICK EVENT HAPPENS HERE</li><br />
                    </ul>
                </div>
            </div> 
        </div>
    </div>    
</li>
<li class="option" id="some_other_id" title="">
    <h5 class="ui-widget-header">Option 1</h5>

また、コードではなく jsFiddle で動作している場合は、jquery準備ができている可能性があります...

アップデート

この jsFiddle は正常に動作しています。http://jsfiddle.net/ck4b2/336/ に問題があるjquery-uiようです

于 2013-01-18T16:17:00.353 に答える