【问题标题】:How to increment div id value?如何增加 div id 值?
【发布时间】:2013-04-01 14:20:46
【问题描述】:

我的任务是设置菜单为选中状态。为此,我使用动态 ID。 所以我想根据选择增加它

我的代码是

<div class="menuHeader ui-corner-top" id="menu"+ i>
    <span><a href="#" onclick="Home()">Home</a></span>
</div>
<div class="menuHeader ui-corner-top" id="menu"+ i>
    <span><a href="#" onclick="NewTransaction()">New Transaction</a></span>
</div>
<div class="menuHeader ui-corner-top" id="menu"+ i>
    <span><a href="#" onclick="Portfolio()">Portfolio</a></span>
</div>

javascript 是

$(document).ready(function () {
             alert(document.URL);
             var list = $("#menu");
             for (var i = 1; i <= list.length; i++) {
                 list[i].innerHTML = i;
             }
             var str = document.URL.toLowerCase().indexOf("portfolio/index");
             alert(str);
             if (str >= 0) {
                 $('#menu').addClass("menuHeaderActive");
             }
         });

我该怎么做?

【问题讨论】:

  • ID 应该是唯一的。我看到你多次使用“菜单”作为 ID。
  • 您不能在 HTML 中执行操作。 id="menu"+ i 没有任何意义。
  • 真的这样做的意义何在?您是否考虑过更简单、更清洁的解决方案?

标签: javascript jquery html


【解决方案1】:
var i=0;
$('.menuHeader').each(function(){
    i++;
    var newID='menu'+i;
    $(this).attr('id',newID);
    $(this).val(i);
});

【讨论】:

  • html有变化吗?
  • 是的,删除那些 Id 属性.. 它们的含义更少...您通过 jquery 提供 ID
【解决方案2】:

这是使用 Jquery 的方法

val elementList = $(".menu");
for (var i = 1; i <= list.length; i++) {
    elementList[i].attr("id", "menu" + i);
}

【讨论】:

  • html有变化吗?
【解决方案3】:

只需使用类名而不是 id,您就可以重用刚刚添加的代码,但是以这种方式。

 var list = $(".menu");

一个建议,不要用javascript做item menu的高亮,做server-side,可以直接在LI的HTML中添加“activating”类。

【讨论】:

  • 改变innerHTML 不是他想要的。他在生成唯一 ID 之后。
  • 我的意思是不值得,不理想,最好使用或类,或者你给它一个友好的id,以防这些选项不会改变。有时,当你看到更大的错误时仅仅回答问题是没有价值的。
  • 我知道,但无论哪种方式,触摸 innerHTML 都没有任何好处。如果您查看他的示例,他会尝试指示哪个菜单项是当前页面。 (这与增加 ID 编号无关。)
猜你喜欢
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多