2013-04-01 36 views
5

Tôi đã có một nhiệm vụ để cài đặt menu như được chọn. Đối với tôi sử dụng id động. Vì vậy, tôi muốn tăng nó liên quan đến việc lựa chọnLàm cách nào để tăng giá trị id div?

Mã của tôi là

<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 được

$(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"); 
      } 
     }); 

Làm thế nào tôi có thể làm điều này?

+0

ID phải là duy nhất. Tôi thấy bạn sử dụng "menu" làm ID nhiều lần. – tymeJV

+0

Tôi đã chỉnh sửa mã – Niths

+6

Bạn không thể thực hiện thao tác trong HTML. 'id =" menu "+ i' không có nghĩa gì cả. – JJJ

Trả lời

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

Có bất kỳ thay đổi nào về html không? – Niths

+0

Có, loại bỏ các thuộc tính Id .. chúng có nghĩa là ít hơn ... bạn đang cho ID của jquery – writeToBhuwan

+0

Nhưng nó không hoạt động. Bạn có thể thêm rằng cũng xin vui lòng – Niths

0

Chỉ cần sử dụng tên lớp thay vì id, bạn sẽ có thể sử dụng lại mã bạn vừa thêm nhưng theo cách này.

var list = $(".menu"); 

Một lời khuyên, không làm nổi bật các menu item với javascript, làm điều đó server-side, và bạn có thể thêm "kích hoạt" class trực tiếp trong HTML của LI.

+0

Thay đổi 'innerHTML' không phải là những gì anh ta theo sau. Anh ta sau khi tạo ra một ID duy nhất. –

+0

Điều tôi nói là nó không đáng, không lý tưởng, tốt hơn là sử dụng hoặc một lớp học, hoặc bạn cho nó một id thân thiện trong trường hợp các tùy chọn này sẽ không thay đổi. Đôi khi chỉ trả lời câu hỏi khi bạn thấy một sai lầm lớn hơn là vô giá trị. – netadictos

+0

Tôi biết, nhưng việc chạm vào innerHTML không có lợi ích gì cả. Nếu bạn nhìn vào ví dụ của mình, anh ta đang cố gắng chỉ ra mục trình đơn nào là trang hiện tại. (Không liên quan gì đến việc tăng số ID.) –

1

Đây là cách để làm điều đó với Jquery

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

là có bất kỳ thay đổi trong html? – Niths

Các vấn đề liên quan