【问题标题】:Change Text Color of Menu Item in ASP.Net Navigation Menu From Javascript从 Javascript 更改 ASP.Net 导航菜单中菜单项的文本颜色
【发布时间】:2011-09-30 23:47:38
【问题描述】:

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

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>

有什么想法吗?

【问题讨论】:

    标签: javascript asp.net menu


    【解决方案1】:

    这是因为您在&lt;li&gt; 中有一个锚标记&lt;a&gt;。您需要做的是设置&lt;a&gt; 的颜色而不是&lt;li&gt; 的颜色:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢。但我认为问题不在于我的代码找到要更改的元素。它正在查找列表项并更改属性。我一定只是更改了错误的属性或其他东西,因为它没有显示为红色。
      猜你喜欢
      • 2015-11-09
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 2018-11-30
      • 2019-03-05
      相关资源
      最近更新 更多