2011-02-19 73 views
0

我正在使用一些javascript来动态改变一个网页,并且我试图让它改变一些html,但是如果我在javascript中有html,它甚至不会执行开始部分。下面是我的javascript:Javascript html改变

function Home() 
{ 
    document.getElementById("title").innerHTML=("Home"); 
    document.getElementById("bodyfill").innerHTML=("Home stuff here"); 

    var newHTMLHome = "a href="#" title="Home" class="active">Home/a>"; 

    document.getElementById('hometab').innerHTML = newHTMLHome; 

    var newHTMLUser = "a href="javascript:User()" title="Home" class="active">Home/a>"; 

    document.getElementById('usertab').innerHTML = newHTMLUser; 
} 

function User() 
{ 
    document.getElementById("title").innerHTML=("User"); 
    document.getElementById("bodyfill").innerHTML=("User stuff here"); 

    var newHTMLHome = "a href="javascript:Home()" title="Home" class="active">Home/a>"; 

    document.getElementById('hometab').innerHTML = newHTMLHome; 

    var newHTMLUser = "a href="#" title="Home" class="active">Home/a>"; 

    document.getElementById('usertab').innerHTML = newHTMLUser; 
} 

我试图得到它的动态改变激活的标签,这是什么,这是应该做的,但它没有任何想法,为什么?如果你需要更多的代码让我知道。提前致谢!

编辑:不得不改变链接代码,只是假设标签是在这种情况下,正确的

+2

你的代码似乎有非转义的字符串:你有使用[jsLint](http://www.jslint.com/)或Firebug或类似的来检查你的代码吗?第二个问题:您如何以及在哪里将家庭和用户功能称为? – 2011-02-19 01:46:54

+0

这很难读。你能突出显示你的代码并点击“{}”按钮 – 2011-02-19 01:47:48

回答

0

你的问题是,你不逃串的特殊字符,例如:

var newHTMLHome = "<a href="#" title="Home" class="active">Home</a>"; 

相反,尝试这样的:

var newHTMLHome = '<a href="#" title="Home" class="active">Home</a>'; 

请看看herehere充分了解发生了什么。

0

是你的确切代码复制和粘贴?如果是这样的话..你不能在这样的双引号内加双引号。检查你的JavaScript错误控制台,你很可能有一些错误。尝试用单引号替换字符串中的双引号。

另外,是否有一个原因,你没有使用JS库像jquery(http://jquery.com)?他们让事情变得如此简单。

0

我会跳过告诉你关于转义你的引用,并指出你在另一个方向,因为你可能试图在这里重新发明轮子。

有一些伟大的工具包,将为您做标签式布局。我将推荐jQuery和jQueryUI,尽管这里还有其他的Javascript库。

demo page for the jQuery UI tabs会告诉你所有你需要做的工作。一旦你按照演示,你只需要去jQuery UI download page,并勾选选项卡功能框,它会给你一个很好的可下载包来开始。

使用jQuery(或任何其他UI工具包)的优势在于,您正在使用许多有兴趣增强这些项目的键盘访问项目,并且也有兴趣修复任何错误 - 在某些方面,这意味着您可以让其他人在努力工作的同时专注于制作更好的网站/应用程序。