所以我觉得我的代码应该可以工作,但事实并非如此。目的是从除了特定元素之外的每个元素中删除可编辑的类。
$('*').not(gCms.section).removeClass("cmsEdit")
我也尝试过做
$('*').each().not(gCms.section).removeClass("cmsEdit")
我确信我在某个地方犯了一些愚蠢的错误,但请帮助我。
编辑:抱歉没有指定人。 gCms.section是一个包含“#someID”
行的字符串答案 0 :(得分:2)
您应该始终尝试避开$( "*" )
选择器。它匹配您网页上的每个元素。这包括<body>
和<head>
以及......嗯......一切!国际海事组织它真的是矫枉过正,我不太清楚为什么它存在!我从来没有见过一个你无法避免的例子。
您可以使用与此类似的代码来完成此任务,而不是尝试将此操作包含在一个命令中:
// 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" );
通过执行“单行”命令,你在“优雅”中放松了什么,你获得了可读性。
答案 1 :(得分:0)
我认为你的意思是$('*:not(#gCms.section)').removeClass("cmsEdit")
您的gCms.section
需要一个标识符,例如id
或class
(pound == id,period == class)。
答案 2 :(得分:0)
你确定你没有意外地将它们扭曲,你真的是这个吗?
$("*").not("section.gCms").removeClass("cmsEdit");
答案 3 :(得分:0)
你可以这样做,我想:
var element = $("#gCms.section");
$('*').each().not(element).removeClass("cmsEdit");
它取代所有元素的cmsEdit,但不取代Id gCms =&gt;课程部分。