Javascript 从除1之外的所有元素中删除类
所以我觉得我的代码应该可以工作,但它不能。其目的是从每个元素中删除可编辑类,但特定元素除外Javascript 从除1之外的所有元素中删除类,javascript,jquery,css,Javascript,Jquery,Css,所以我觉得我的代码应该可以工作,但它不能。其目的是从每个元素中删除可编辑类,但特定元素除外 $('*').not(gCms.section).removeClass("cmsEdit") 我也试过这样做 $('*').each().not(gCms.section).removeClass("cmsEdit") 我肯定我在某个地方犯了一些愚蠢的错误,但请帮我解决 编辑:很抱歉没有指定男生。gCms.section是一个字符串,包含“#someID”我想你的意思是$('*:not(#gCms.
$('*').not(gCms.section).removeClass("cmsEdit")
我也试过这样做
$('*').each().not(gCms.section).removeClass("cmsEdit")
我肯定我在某个地方犯了一些愚蠢的错误,但请帮我解决
编辑:很抱歉没有指定男生。gCms.section是一个字符串,包含“#someID”我想你的意思是$('*:not(#gCms.section)”)。removeClass(“cmsEdit”)
您的
gCms.section
需要一个标识符,例如id
或class
(pound==id,period==class)。您确定没有意外地扭曲它们,并且您真的是这么想的吗
$("*").not("section.gCms").removeClass("cmsEdit");
你可以这样做,我想:
var element = $("#gCms.section");
$('*').each().not(element).removeClass("cmsEdit");
它从所有元素中替换cmsEdit,但不从IdgCms=>类部分替换。您应始终尝试避免使用
$(“*”)
选择器。它匹配页面上的每个元素。这包括
和
以及……嗯……一切!在我看来,这真是太过分了,我不太清楚它为什么会存在!我从未见过一个你无法避免的例子
您不必试图将此操作包含在一个命令中,而可以使用类似以下的代码来完成此任务:
// For any element containing the class cmsEdit, remove it.
$( ".cmsEdit" ).removeClass( "cmsEdit" );
// (Re)add the class to the element you want
$( other_element ).addClass( "cmsEdit" );
通过执行“一行程序”命令,您在“优雅”中释放的内容,您的可读性得到了提高。为什么要查找每个元素?您应该有
$(“.cmsEdit”)。不是(…
gCms.section是一个对象?或者你想说的是“#gCms.section”?完全确定gCms是Javascript的全局名称空间,所以我不需要每次调用一个。有几个元素都有类cmsEdit,但当它结束时,我只需要一个。不-你不需要每个命令。$(.cmsEdit))
选择器将匹配包含该类的所有元素,因此removeClass()
将处理所有匹配的元素;简短:)