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 jquery-ui: //jsfiddle.net/ck4b2/336/

于 2013-01-18T16:17:00.353 回答