Jquery在foreach循环中选择正确的id

时间:2014-05-24 21:38:47

标签: jquery foreach

我有一个foreach循环,在其中呈现大约10个不同的链接,当用户点击链接时,它们共享一个共同的 ID 和不同的名称我希望Jquery能够执行我已经可以完成的特定功能。我遇到问题的部分是如何让Jquery注意到哪个链接被点击了;这是我的代码,它应该清理

Jquery的

    <script>
    $(document).ready(function () {
        $("#mee").click(function (e) {
            if ($(this).text() == "[+]") {

                $("#mee").text("[-]");
            }
            else {
                $("#mee").text("[+]");
            }
        });
    });
</script>

    foreach (var item in Model.IEThreadpost)
        {
             <a id="mee" style="color: #980000" name="@item.ThreadpostID" href="#">[+]</a>
           }

我知道这是有效的,因为循环的第一个元素总是正确响应,但所有其他元素都不起作用。如果你看一下foreach循环,你会在名称中看到一个变量,它总是一个整数,所以循环id,name总是类似

  • ID = mee Name = 5
  • ID = mee Name = 23
  • ID = mee Name = 11

用它说如何更改上面的Jquery代码以包含正确的 Name 标识,以便在单击时正确的链接起作用?

1 个答案:

答案 0 :(得分:0)

首先,您网页上的所有ID属性都应具有唯一值。

解决方案(蝙蝠,未经测试)可能是:

    foreach (var item in Model.IEThreadpost)
    {
         <a id="@item.ThreadpostID" class="mee" style="color: #980000" name="@item.ThreadpostID" href="#">[+]</a>
    }

(注意值&#34; mee&#34;如何转移到类属性,这对于重复项可以正常工作)

<script>
$(document).ready(function () {
    $(".mee").click(function (e) {
        if ($(this).html() == "[+]") {

            $(this).html("[-]");
        }
        else {
            $(this).html("[+]");
        }
    });
});
</script>