定义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
}
答
您不能在属性中使用<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'函数进行排序。
会发生什么事? – Dogbert
我不确定...它应该使课程=“navactive”,然后我的菜单按钮应该是蓝色的,但它不会发生。如果我只是放在课堂上=“navactive” –
你能解释一下你想达到什么,所以我们可以提供更好的帮助吗?但从我看到的情况来看,您似乎正尝试根据您是否在当前页面上来设置主页链接。 – zer0bit