定义HTML类与JavaScript函数

问题描述:

我正在开发一个网站,我有一些trouple .. 我想用一个Javascript功能来定义我的课,像这样:定义HTML类与JavaScript函数

的html代码:

<script type="text/javascript" src="../js/active_menu.js"></script> 
<a id="demo" class="<script>document.write(myFunction('index.php'));</script>" href="index.php">Home</a> 

javascript代码:

function myFunction(menu_punkt) 
{ 
var state = 'not_active' 
var a = document.URL.split("//"); 
a = (a[1] ? a[1] : a[0]).split("/"); 
a = a[1]; 

if (menu_punkt == a){ 
    state = 'navactive'; 
} 
return state 
} 
+0

会发生什么事? – Dogbert

+0

我不确定...它应该使课程=“navactive”,然后我的菜单按钮应该是蓝色的,但它不会发生。如果我只是放在课堂上=“navactive” –

+0

你能解释一下你想达到什么,所以我们可以提供更好的帮助吗?但从我看到的情况来看,您似乎正尝试根据您是否在当前页面上来设置主页链接。 – zer0bit

您不能在属性中使用<script>标记。也许最简单的变化会做到这一点:

<script type="text/javascript" src="../js/active_menu.js"></script> 
<script>document.write('<a id="demo" class="' + myFunction('index.php') + '" href="index.php">Home</a>');</script> 

如果你想你的网页更容易被用户禁用JavaScript,或者你希望允许DOM继续而不阻塞JS执行加载,你可能会考虑一种改变事实之后的因素的方法。

使用className属性:

document.getElementById("demo").className = myFunction('index.php'); 

请确保您在之后调用此demo已被添加到DOM,否则document.getElementById("demo")将会失败。

首先,从“类”值去掉<script>标签,可以让这个更与jQuery优雅:

$(document).ready(function() { 
    $('#demo').addClass(myFunction('index.php')) 
}); 

function myFunction(menu_punkt) 
{ 
    var state = 'not_active' 
    var a = document.URL.split("//"); 

http://docs.jquery.com/Tutorials:Introducing_$%28document%29.ready%28%29

*如果你不想硬编码名称你的页面在你的函数的参数中,你可以用'window.location.href'和'substr'函数进行排序。

http://www.w3schools.com/jsref/jsref_substr.asp