删除非静态span类

时间:2017-08-31 11:26:22

标签: javascript jquery

我通过以下方式生成span标记:

var clss = $(this).attr("dclss");
<span id="'+id+'" dtype = "'+type+'" dclss="'+clss+'" dattr="'+attr+'" class=" anyi '+clss+'"></span>

当我点击这个范围时,他的班级正在变为&#34;活跃&#34;。之后,当我点击另一个范围时,我想删除这个活跃的课程,但不确定如何。我已经尝试过这个:

$(".selected .content").on('click','.close-icon', function(){
     var clss = $(this).attr("dclss");
     $(this).closest('.liveicon').fadeOut(500);
     $("#anyi " + clss ).removeClass("active");
 });

但是我的课程未定义。有关如何使用jQuery获取span类的任何想法吗?

HTML:

str += '<div class="liveicon" id="'+id+'" dtype = "'+type+'" dclss="'+clss+'" dattr="'+attr+'">';
str += '<span class="close-icon" id="close-icon">&#10006;</span>';
str += '<span id="'+id+'" dtype = "'+type+'" dclss="'+clss+'" dattr="'+attr+'" class=" anyi '+clss+'"></span>';
str += '<div class="clearboth"></div>';
str += '<div class="codes">';
str += '<div class="tit">FONT</div><input type="text" class="fontsc" value="[anyicon i=\''+clss+'\' '+stylestr+']">';
str += '<div class="tit">PNG</div><input type="text" class="pngsc" value="[anyicon i=\''+clss+'\' '+stylestr+' type=\'png\']">';
str += '<div class="tit">SVG</div><input type="text" class="svgsc" value="[anyicon i=\''+clss+'\' '+stylestr+' type=\'svg\']">';
str += '</div>';
str += '</div>';

1 个答案:

答案 0 :(得分:0)

&#34; dclss&#34;不是有效的html属性,因此可能导致问题。通常,对于自定义属性,您应该使用&#34;数据 - &#34;前缀,所以请尝试使用&#34; data-previous-class&#34;。

另一种方法是使用属性而不是CSS类,所以只需执行$(this).attr(&#34; data-is-active&#34;,&#34; false&#34;)和$ (这).attr(&#34;数据有效&#34;,&#34;真&#34;)。您可以像这样编写一个css选择器:

span[data-is-active="false"] {
   //inactive CSS
}

span[data-is-active="true"] {
   //active CSS
}