【问题标题】:Can I change a hyperlink and CSS using Javascript? [closed]我可以使用 Javascript 更改超链接和 CSS 吗? [关闭]
【发布时间】:2013-03-28 16:19:46
【问题描述】:

所以我想在用户单击选项卡时将 CSS id 设置为不同的。

我所有的部门都作为网站的布局):

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

我想将部门 id 更改为“something3”(并且“something3”已在我的 CSS 中定义)

另外,我想将链接更改为“page3.html”(已存在于我的文件夹中)。

所以我的问题是,我如何使用 javascript 更改这两个东西?

我已经有了:

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

如果有人能提供帮助,我将不胜感激。

【问题讨论】:

标签: javascript html css web


【解决方案1】:

你可以这样做:

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

但是更改元素的id 通常会导致糟糕的设计,最好使用类。

【讨论】:

  • 它不起作用。当我单击时,它不会重新路由到另一个页面,也不会更改 css。也许 .clicked 不是正确的条件?
  • Macosx Iam 你没有在问题的代码中正确附加你点击的处理程序。此外,如果您单击并转到新页面然后返回,样式将与原来一样。如果您通过点击进入新页面,人们将不会看到您的 id/样式更改
  • 嗯,我想要实现的是当点击标签时,改变了div id并且改变了链接(a href)。我该怎么做?
  • 我让 css 工作了。现在链接?
【解决方案2】:

我建议为您的元素添加一个 id 并使用类来实现 div 的样式。然后你可以这样做:

   //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
}
        });
   });

(虽然我不是在这里更改课程,而是根据您的要求更改 id)

小提琴http://jsfiddle.net/nQr4p/

【讨论】:

  • 有没有更简单的方法来实现这一点?
  • 如果您更改页面,当您返回原始页面时,样式不会更新,因为它正在发生在用户身上,而不是更改您的服务器呈现的内容。还有你的意思是更简单?如果您像我上面建议的那样查看jquery.com,您也许可以弄清楚您需要做什么
  • jquery 是我不熟悉的东西。另外,我正在尝试使我的网站脱机工作。我以后可能会也可能不会把它放到网上。
  • 我已根据您上面的评论添加了 href 属性。 jQuery 是一个 JavaScript 框架。您可以对其进行本地引用,以便离线工作
  • 好的,我让 css 工作了(我从方法中划掉了 if 语句,放入操作,然后 onClick="method()")。链接呢?我不能做 document.getElementById();现在。
【解决方案3】:
 var targetLink = document.getElementById('yourLinkObjId') // both elements should be givn ids 
  var targetDiv = document.getElementById('yourDivObjId')
  targetLink.href ='page2.html
  targetDiv.id = 'something2'

这些都应该放在你的更改函数中

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2017-09-06
    • 2014-01-11
    • 2017-07-18
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多