2013-04-01 41 views
5

我有一项任务将菜单设置为选定状态。为此,我使用动态ID。 所以我想对于增加它的选择如何增加div 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"); 
      } 
     }); 

我怎样才能做到这一点?

+0

的ID应该是唯一做到这一点的方式。我看到你多次使用“菜单”作为ID。 – tymeJV

+0

我编辑了代码 – Niths

+6

您无法在HTML中执行操作。 'id =“menu”+ i'并不意味着什么。 – JJJ

回答

11
var i=0; 
$('.menuHeader').each(function(){ 
    i++; 
    var newID='menu'+i; 
    $(this).attr('id',newID); 
    $(this).val(i); 
}); 
+0

html中是否有任何更改? – Niths

+0

是的,删除这些Id属性..他们意味着更少...你给ID的jquery – writeToBhuwan

+0

但它不工作。你可以添加,也请 – Niths

0

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

var list = $(".menu"); 

一个忠告,不要做与JavaScript的项目菜单的高亮,做服务器端,你可以直接在LI的HTML添加“激活”类。

+0

改变'innerHTML'不是他所追求的。他在生成一个唯一的ID之后。 –

+0

我在说的是,如果这些选项不会改变,那么使用或课堂效果更好,或者给它一个友好的ID是不值得的,也不是理想的。有时只是在看到更大的错误时回答问题是毫无价值的。 – netadictos

+0

我知道,但是触摸innerHTML对任何方式都没有任何好处。如果你看他的例子,他试图指出哪个菜单项是当前页面。 (这与增加身份证号码无关。) –

1

这是与jQuery

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

是否有任何改变的HTML? – Niths