2013-03-28 2 views
-3

Так что я хочу, чтобы идентификатор CSS был другим, когда пользователь щелкает вкладку.Могу ли я изменить гиперссылку и CSS с помощью Javascript?

У меня есть все мои подразделений в качестве макета для сайта):

<a href="page.html"><div id="something"></div></a> <!-- this is one of my navigation tabs that I'll click on --> 

Я хочу изменить эту вкладку навигации:

<a href="page2.html"><div id="something2"></div></a> 

Я хочу, чтобы изменить идентификатор деления на «something3 »(и что« something3 »уже определен в моем CSS)

Также, я хочу изменить ссылку на« page3.html »(уже существующую в моей папке).

Так что мой вопрос: как мне изменить обе эти вещи с помощью javascript?

У меня уже есть:

function changeTab() { 
    if (document.getElementById('something').clicked) 
    { 
     // change the css and link 
    } 
} 

Я был бы признателен, если кто-нибудь помочь.

+0

Вы говорите, что хотите изменить ссылку. Вы хотите остановить его перемещение на page2.html и вместо этого перейти на страницу 3? Или вы хотите открыть page2.html в новом окне, а затем обновить ссылку? – TommyBs

+0

Остановите его, перейдя на страницу2.html и перейдите на страницу3.html, а также измените его на соответствующий CSS (div id "page2" на div id "page3"). –

ответ

1

Я предлагаю добавить идентификатор ваших элементов и использование классов для достижения стиля на делах. Затем вы можете сделать что-то следующим образом:

//html 
<a href="page.html" id="link"><div id="something">something</div></a> <!-- this is one 

    window.onload = (function(){ 
     var link = document.getElementById('link'); 
     link.onclick = (function(e){ 
      if(!link.href.indexOf('page2.html')){ 
     //continue as normal? 
}else{ 
      e.preventDefault(); 
      var childDiv = this.children[0]; 
      childDiv.id = 'something2'; 
      link.href= '/page3.html'; 
      //window.location = '/page3.html'; //uncomment this line to navigate to new page or use window.open to open a new page 
} 
     }); 
    }); 

(хотя я не меняя класс здесь, но идентификатор согласно вашему запросу)

скрипку http://jsfiddle.net/nQr4p/

+0

Есть ли более простой способ достичь этого? –

+0

Если вы измените страницу, стили не будут обновляться, когда вы вернетесь на исходную страницу, как это происходит для пользователя, не изменяя то, что делает ваш сервер. Также как вы говорите проще? Если вы посмотрите на http://jquery.com, как я предложил выше, вы можете решить, что вам нужно сделать. – TommyBs

+0

jQuery - это то, с чем я не знаком. Кроме того, я пытаюсь сделать мой сайт работать в автономном режиме. Я могу или не могу поместить его в Интернет позже. –

2

Вы можете сделать это следующим образом:

var el = document.getElementById('something') 
el.id = 'something3'; 
el.href = 'newpage.html'; 

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

+0

не работает. Когда я нажимаю, он не перенаправляется на другую страницу и не меняет css. Может быть, .clicked это не правильное условие? –

+0

Macosx Iam, вы не прикрепляете вы правильно обработанных обработчиков в своем коде в вопросе. Также, если вы нажмете и перейдете на новую страницу, вернитесь назад, стили будут такими, какими они были изначально. Если вы перейдете на новую страницу по клику, люди не смогут увидеть ваше изменение идентификатора/стиля. – TommyBs

+0

Ну, что я хочу достичь, когда нажата вкладка, изменяется идентификатор div и изменяется ссылка (href) , Как мне это сделать? –

0
var targetLink = document.getElementById('yourLinkObjId') // both elements should be givn ids 
    var targetDiv = document.getElementById('yourDivObjId') 
    targetLink.href ='page2.html 
    targetDiv.id = 'something2' 

они все должен быть размещен внутри вашей функции изменения

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