从Javascript更改ASP.Net导航菜单中菜单项的文本颜色

时间:2011-09-30 15:16:46

标签: javascript asp.net menu

我有一个带有1个项目的ASP.Net导航菜单控件,如果存在某些条件,我需要动态更改文本的颜色。我有一个功能设置为每1秒运行一次以检查这些条件,如果为true则需要将菜单项的文本设置为红色。我试过了:

var item = $("ul").children().eq(6);
item.style.color = "red";

但是得到“无法设置未定义的属性颜色”错误。我试过了:

$("ul").children().eq(6).css("color", "red");

它找到菜单项,将颜色属性更改为红色,但仍显示以前的颜色。从来没有变红。下面是发生这种情况时页面中的html:

<li role="menuitem" class="static" style="position: relative; float: left; color: red; ">
    <a class="level1 static" href="Sync.aspx" tabindex="-1">Sync</a>
</li>

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您尝试从javascript访问具有属性runat="server"的任何元素,请尝试为该元素提供ClientIDMode="Static"属性。否则,asp.net很容易重命名元素的ID。

答案 1 :(得分:0)

这是因为你在<a>中有一个锚标记<li>。您需要做的是设置<a>的颜色而不是<li>的颜色:

$("ul").children().eq(6).children().css("color", "red");

示例:http://jsfiddle.net/Jscng/