2013-04-01 3 views
5

У меня есть задача установить меню как выбранное. Для этого я использую динамический идентификатор. Поэтому я хочу, чтобы увеличить его по выборуКак увеличить значение id div?

Мой код

<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> 

браузер

$(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 =» «+ 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 по jquery – writeToBhuwan

+0

Но его не работает. Можете ли вы добавить, что также, пожалуйста, – Niths

0

Просто используйте имя класса вместо id, вы сможете повторно использовать код, который вы только что добавили, но таким образом.

var list = $(".menu"); 

один совет, не делают подсветку пункт меню с JavaScript, сделать это на стороне сервера, и вы можете добавить «активирующий» класс непосредственно в HTML из LI.

+0

Изменение 'innerHTML' - это не то, что ему нужно. Он создал уникальный идентификатор. –

+0

Я говорю, что это не стоит, а не идеально, что лучше использовать или класс, или вы даете ему дружественный идентификатор в случае, если эти параметры не изменятся. Иногда просто отвечая на вопрос, когда вы видите, что большая ошибка бесполезна. – 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

Смежные вопросы