如何使用jquery更改类名?

时间:2012-01-24 16:52:47

标签: jquery asp.net devexpress

我正在尝试从javascript更改ASPxClientLabel的类名。怎么做?

我试过了:

此标签位于转发器控件内:

<dx:ASPxLabel ID="labelShortName" runat="server" CssClass="shortNameItemLink"
ClientSideEvents-Click="function(s, e){ ShortName_Clicked(s, e); }"
Text='<%#DataBinder.Eval(Container.DataItem, "ShortName")%>'>  
</dx:ASPxLabel> 

此标签以“点击”

开头
<dx:ASPxLabel ID="labelShowAll" runat="server" 
ClientSideEvents-Click="function(s, e){ ShortName_Clicked(s, e); }" Text="Show All" 
CssClass="shortNameItemLinkClicked"></dx:ASPxLabel>

[JS]

<script type="text/javascript">
    function ShortName_Clicked(s, e) {
        var selectedText = s.GetText();
        var items = $('.shortNameItemLinkClicked');
        items.removeClass();
        items.addClass('shortNameItemLink');
        $(s).className = "shortNameItemLinkClicked";
 }
</script>

我收到“未定义”错误。

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

试试这个。

function ShortName_Clicked(s, e) {
        var selectedText = s.GetText();
        $('.shortNameItemLinkClicked')
        .removeClass()
        .addClass('shortNameItemLink');
        $(s).attr('class', 'shortNameItemLinkClicked');
}

答案 1 :(得分:1)

你试过吗

 $(s).attr("class","shortNameItemLinkClicked");

答案 2 :(得分:1)

看起来你正在向后添加/删除。请尝试以下

function ShortName_Clicked(s, e) {
  $('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked');
}

答案 3 :(得分:1)

类名在HTML和jQuery中并不完全匹配。试试这个:

<script type="text/javascript">
    function ShortName_Clicked(s, e) {
        var selectedText = s.GetText();

        $('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked');
    }
</script>

我还添加了你的例子中缺少的右括号 - 我不确定这只是一个错字。

答案 4 :(得分:1)

$(s).className = "shortNameItemLinkClicked";

应该是 $(s).get(0).className = "shortNameItemLinkClicked";

或者如果你知道现有的className

$(s).removeClass("shortNameItemLink").addClass("shortNameItemLinkClicked");

答案 5 :(得分:0)

很抱歉我自己回答,但其他人似乎都没有。

我这样修好了:

<script type="text/javascript">
    function ShortName_Clicked(s, e) {
        var selectedText = s.GetText();
        $('.shortNameItemLinkClicked')
        .removeClass()
        .addClass('shortNameItemLink');

        $('#' + s.name)
        .removeClass("shortNameItemLink")
        .addClass("shortNameItemLinkClicked"); 
    }
</script>
来自devexpress文档的

ASPxClientLabel

感谢@ShankarSangoli进行方法链接重构。