【问题标题】:Passing ID parameters to a function将 ID 参数传递给函数
【发布时间】:2012-07-01 18:10:29
【问题描述】:

我希望这是一个简单的语法问题。
我在一个页面上有很多项目。单击时,应将每个项目的 id 传递给 jquery。这将导致出现具有更多细节的不透明层。 我正在努力将 id 的值放入脚本中。

有人可以帮忙吗?
这是表格的一部分:

<ul class="foodmenu">
    <li class="foodmenuitems"><img src="images/classic.png" id="classic" /></li>
    <li class="foodmenuitems"><img src="images/blue.png"  id="blue"/></li>
</ul>

和脚本:

$(document).ready(function() {
    $(".food-item-details").hide();
    $(".foodmenuitems").click(function() {
        $(".food-item-details").hide();
        var foodItem = $(this).value;
        $(foodItem).show('slow');
    });
    $(".close").click(function() {
        $(".food-item-details").hide('slow');
    });
});

感谢您的任何建议!

【问题讨论】:

    标签: jquery function syntax


    【解决方案1】:

    您可能想要的是var foodItem = '#' + this.id; - 只有表单输入有value

    但是,这仍然行不通,因为 ID 需要是唯一的。不过,您可以通过使用数据属性轻松修复它:

    <ul class="foodmenu">
        <li class="foodmenuitems"><img src="images/classic.png" data-item="classic" /></li>
        <li class="foodmenuitems"><img src="images/blue.png"  data-item="blue"/></li>
    </ul>
    
    $(document).ready(function() {
        $(".food-item-details").hide();
        $(".foodmenuitems").click(function() {
            $(".food-item-details").hide();
            var foodItem = $(this).data('item');
            $('#' + foodItem).show('slow');
        });
        $(".close").click(function() {
            $(".food-item-details").hide('slow');
        });
    });
    

    此代码现在在单击时显示具有data-item 中指定的 ID 的元素。

    【讨论】:

    • “但是,这仍然行不通,因为 ID 需要是唯一的。”我不明白为什么 - classicblue 对我来说似乎是独一无二的。
    • @AnthonyGrist:他正试图根据该 ID 显示另一个元素。从他发布的代码来看,他没有为目标元素添加前缀——因此它们很可能具有与菜单项相同的 ID。
    • 谢谢大家。我以前看过 data-item 方法,但不明白。虽然这段代码有意义,但我必须查一下。再次感谢!
    • 您好,我已尝试实现上述代码,但无法使其正常工作。向代码添加警报表明该函数执行第二个$(".food-item-details").hide();,但随后停止。关闭部分工作正常。如果您想查看完整的代码,我已将其发布在:holtworth.net/liberty/menu-fragment.txt 提前致谢!
    • 好的,所以我还没有进一步了解这个。回顾前面的答案,似乎值得指出目标元素也具有唯一的 id。事实上,我已经复制并粘贴了上面的代码,但无法让它工作。有没有办法将参数从 onclick 函数传递到 jQuery?
    猜你喜欢
    • 2022-01-01
    • 2013-01-27
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多