2015-02-21 2 views
-1
<nav> 
<ul> 
<li><a id ="current" href="Default.aspx">A</a></li> 
<li><a href="suppliers.aspx">B</a></li> 
<li><a href="ServiceLocation.aspx"> C</a></li> 
<li><a href="Default3.aspx"> D</a></li> 
<li><a href="jobs.html"> E</a></li> 
<li><a href="contactus.aspx"> F</a></li> 
</ul> 
</nav> 

У меня есть вкладки меню, как этот a link Я хочу, чтобы изменить идентификатор = «текущий» на вкладке им. Например, если пользователь нажмет и он находится на странице C ид = ток должен быть в С.Изменить значение идентификатора для тега в HTML

Спасибо всем

+3

Я думаю, вы должны скорее изменить ** класс **. – void

ответ

0

Я вижу, что вы используете осина, так что вы можете просто использовать определенную логику для проверки текущего URL и назначить идентификатор или класс по ссылке.

Другим способом было бы использовать jquery для этого динамически. Хотя asp - лучший способ сделать это в вашем случае.

//HTML 
<nav> 
<ul> 
<li><a id ="A" href="Default.aspx">A</a></li> 
<li><a id ="B" href="suppliers.aspx">B</a></li> 
<li><a id ="C" href="ServiceLocation.aspx"> C</a></li> 
<li><a id ="D" href="Default3.aspx"> D</a></li> 
<li><a id ="E" href="jobs.html"> E</a></li> 
<li><a id ="F" href="contactus.aspx"> F</a></li> 
</ul> 
</nav> 

//jquery 
$('nav ul li a').removeClass('current'); 
if (window.location.href.indexOf("Default.aspx") > -1) { 
    $('nav ul a#A').addClass('current'); 
}elseif (window.location.href.indexOf("suppliers.aspx") > -1) { 
    $('nav ul a#B').addClass('current'); 
} 
//Css 
Just copy the same styling form #current to .current 
+0

Вы можете сделать это с JS, а также ..: P – void

+0

как я могу это сделать? – user2274204

+0

Привет, Омар, я делаю то же самое и добавляю ссылку jquery.min.js. но не работает для меня, – user2274204

0

Очень сумасшедшая идея изменить ID. Если это не нужно (возможно, в 100% случаев), я предлагаю использовать другое свойство для выбора текущего элемента. Например, class, или даже пользовательский data- в html5. Посмотрите здесь: http://www.w3schools.com/tags/att_global_data.asp

+0

способ применения класс? – user2274204

+0

Как и здесь: http://stackoverflow.com/questions/3452778/jquery-change-class-name – garbus

0

Вы лучше использовать класс для этого, но это должно делать то, что вы хотите:

<script> 
$("a").click(function() { 
    $('#current').attr('id',''); // clear old current 
    $(this).attr('id', 'current'); // set new current 
}); 
</script> 
+0

Предполагая, что у вас есть доступ к jQuery. –

0

Как уже сказали, что вы, вероятно, следует использовать класс, а не id, если у вас нет веских оснований для этого.

Вот код для изменения идентификатора

$("li > a").click(function() { 
    $('#current').removeAttr('id','current'); 
    $(this).attr('id', 'current'); 
}); 

или класс вместо ..

$("li > a").click(function() { 
    $('.current').removeAttr('class','current'); 
    $(this).attr('class', 'current'); 
}); 

А вот ваш модифицированный jsfiddle http://jsfiddle.net/39rc2Le5/2/

Update

Если и использовать класс вместо этого вы будете иметь что-то вроде этого ...

<nav> 
    <ul> 
     <li><a class="current" href="#">A</a> 
     </li> 
     <li><a class="" href="#3">B</a> 
     </li> 
     <li><a class="" href="#"> C</a> 
     </li> 
     <li><a class="" href="#"> D</a> 
     </li> 
     <li><a class="" href="#"> E</a> 
     </li> 
     <li><a class="" href="#"> F</a> 
     </li> 
    </ul> 
</nav> 

Тогда ваши вкладки, которые в настоящее время стилизованных a#current свойства будут оформлены по a.current свойствами. Поэтому измените свой селектор css следующим образом.

nav ul li a.current { 
     background-color: #F9F9F9; 
     border-style: solid; 
     border-color: #ee1d78; 
     border-top: 15px; 
     border-left: none; 
     border-right: none; 
    } 
+0

Как я могу добавить класс, что вы подразумеваете под этим, может дать мне пример? – user2274204

+0

Я обновил ответ. Я думаю, вопрос, который нужно задать, - это то, почему вы хотите изменить идентификатор (или класс) на «текущий»? Это запустить другой скрипт или просто с помощью css? – skribe

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