0

我正在尝试在我的 jquery 菜单 ui 中获取所选 ui.item 的名称属性。我需要添加了“选定”类的项目的名称属性,但 attr('name') 返回未定义。单击提交按钮时,我需要获取该名称属性。

<script>
    $(function () {
        var selection = ' ';

        $(".menu").menu({
            select: function (event, ui) {
                $('.selected', this).removeClass('selected');
                selection = ui.item.addClass('selected').attr('name');
            } // closes select function
        }); // closes menu

        $("button").button();
        $("button").click(function () {
            alert(selection)
        }); //closes click()
    });
</script>

<ul class="menu" id="menu">
    <li>
        <a href="#" name="academic_artStudies">
            <img src="" alt="" />
            <h2>Academic: Art Studies</h2>
        </a>
    </li>
    <li>
        <a href="#" name="academic_Literature">
            <img src="" alt="" />
            <h2>Academic: Literature</h2>
        </a>
    </li>
    <li>
        <a href="#" name="academic_socialSciences">
            <img src="" alt="" />
            <h2>Academic: Social Sciences</h2>
        </a>
    </li>
    <li>
        <a href="#" name="academic_physicalNaturalSci">
            <img src="" alt="" />
            <h2>Academic: Physical/Natural Sciences</h2>
        </a>
    </li>
</ul>
4

2 回答 2

1

ui.item返回<li>您点击的。它没有name属性。<a>标签,它的孩子,做的。您需要先获取标签<a>,然后才能获取名称。

selection = ui.item.addClass('selected').children('a').attr('name');

演示:http: //jsfiddle.net/ntUcW/1/

于 2013-04-04T14:26:53.140 回答
0

根据文档, ui.item 是活动元素(单击),而不是您可能假设的 li 元素。从 ui.item 你需要做ui.item.children('a').attr('name')才能获得你所追求的价值。

于 2013-04-04T14:28:33.340 回答