Sev*_*Sev 9 html css c# asp.net
我在我的li标签中添加了一个css类,如下所示:
liComPapers.Attributes.Add("class", "NoDisplay");
Run Code Online (Sandbox Code Playgroud)
有没有办法从我的代码中的其他地方的li标签中删除这个特定的类(NoDisplay)?
我尝试了以下代码,但它无法正常工作.
liComPapers.Attributes["class"] = "";
Run Code Online (Sandbox Code Playgroud)
谢谢
如果我理解正确:
如果您只想删除NoDisplay,可以用空字符串替换该字符串的那一部分:
liComPapers.Attributes["class"] = liComPapers.Attributes["class"].Replace("NoDisplay", "");
Run Code Online (Sandbox Code Playgroud)
但是,.Add("class", "NoDisplay")不会向您的类属性添加新类.它将class使用值创建一个新属性NoDisplay.因此,如果您的标记目前是:
<li class="myClass"></li>
Run Code Online (Sandbox Code Playgroud)
它会变成:
<li class="myClass" class="NoDisplay"></li>
Run Code Online (Sandbox Code Playgroud)
这是无效的标记.
要将新类附加到具有现有类的元素,您可以执行以下操作:
liComPapers.Attributes["class"] += " NoDisplay";
Run Code Online (Sandbox Code Playgroud)
然后会呈现:
<li class="myClass NoDisplay"></li>
Run Code Online (Sandbox Code Playgroud)
我刚刚制作了一个示例来测试您的代码,并发现以下部分将完全符合您的要求:
var newClassValue = liTest.Attributes["class"].Replace("NoDisplay", "");
liTest.Attributes["class"] = newClassValue;
Run Code Online (Sandbox Code Playgroud)
经过测试和工作: 如果(由于某种原因)上面的代码不起作用,我会推荐另一种方法,它类似于前面的方法,用另一种方法来替换类值
var newClassValue = liTest.Attributes["class"].Replace("NoDisplay", "");
liTest.Attributes.Remove("class");
liTest.Attributes.Add("class",newClassValue);
Run Code Online (Sandbox Code Playgroud)