Javascript 使用MooTools完全删除类

Javascript 使用MooTools完全删除类,javascript,string,mootools,Javascript,String,Mootools,这篇文章链接到我的博客 感谢Pointy的回答,我能够将RemoveClass与MooTools正确地结合使用,但不幸的是,我仍然有一个问题:即使从HTML元素中删除了类,HTML元素仍然有一个空类(class=“”) 我想知道是否有一种方法可以避免这种情况并完全删除该类 我的代码: <script type="text/javascript"> window.addEvent('domready', function(){ $('votconj').addEvent('

这篇文章链接到我的博客

感谢Pointy的回答,我能够将RemoveClass与MooTools正确地结合使用,但不幸的是,我仍然有一个问题:即使从HTML元素中删除了类,HTML元素仍然有一个空类(class=“”)

我想知道是否有一种方法可以避免这种情况并完全删除该类

我的代码:

<script type="text/javascript">
  window.addEvent('domready', function(){
    $('votconj').addEvent('click', function() {
      $('first_name_conjoint').addClass("validate['required','nodigit']");
      $('last_name_conjoint').addClass("validate['required','nodigit']");
      $('jj_conjoint').addClass("validate['required']");
      $('mm_conjoint').addClass("validate['required']");
      $('aaaa_conjoint').addClass("validate['required']");
      $('conjoint_regime').addClass("validate['required']");
      new FormCheck('formulaire');
    });

    $('votconj_no').addEvent('click', function() {
      $('first_name_conjoint').removeClass("validate\\['required','nodigit'\\]");
      $('first_name_conjoint').removeProperty('class');
      $('last_name_conjoint').removeClass("validate\\['required','nodigit'\\]");
      $('last_name_conjoint').removeProperty('class');
      $('jj_conjoint').removeClass("validate\\['required'\\]");
      $('jj_conjoint').removeProperty('class');
      $('mm_conjoint').removeClass("validate\\['required'\\]");
      $('mm_conjoint').removeProperty('class');
      $('aaaa_conjoint').removeClass("validate\\['required'\\]");
      $('aaaa_conjoint').removeProperty('class');
      $('conjoint_regime').removeClass("validate\\['required'\\]");
      $('conjoint_regime').removeProperty('class');
      new FormCheck('formulaire');
    });

    new FormCheck('formulaire');
});
</script>

addEvent('domready',function(){
$('votconj').addEvent('click',function(){
$('first_name_conjoint').addClass(“validate['required','nodigit']);
$('last_name_conjunction').addClass(“validate['required','nodigit']);
$('jj_conjuint').addClass(“validate['required']”);
$('mm_conjoint').addClass(“validate['required']”);
$('aaaa_conjunction').addClass(“validate['required']”);
$('conjoint_regime').addClass(“validate['required']”);
新的FormCheck(“formulaire”);
});
$('votconj_no')。addEvent('click',function(){
$('first\u name\u conjoint').removeClass(“validate\\['required','nodigit'\\\]”);
$('first_name_conjoint').removeProperty('class');
$('last\u name\u conjunction').removeClass(“validate\\['required','nodigit'\\\]”);
$('last_name_conjoint').removeProperty('class');
$('jj_conjuint').removeClass(“validate\\['required'\\]”);
$('jj_conjoint').removeProperty('class');
$('mm\u conjoint').removeClass(“validate\\['required'\\]”);
$('mm_conjoint')。removeProperty('class');
$('aaaa\u conjunction').removeClass(“validate\\['required'\\]”);
$('aaaa_conjoint')。removeProperty('class');
$('conjoint\'u regime').removeClass(“validate\\['required'\\]”);
$('conjoint_regime')。removeProperty('class');
新的FormCheck(“formulaire”);
});
新的FormCheck(“formulaire”);
});
单选按钮代码

<label>Conjoint :</label>
    <input type="radio" name="votconj" id="votconj" value="oui" onclick="affich_conj();">oui
    <input type="radio" name="votconj" id="votconj_no" value="non" checked="checked" onclick="affich_conj();">non
联合:
是的
不

您应该能够使用.removeProperty()方法删除class属性

他们的例子是:

HTML

<a id="myAnchor" href="#" onmousedown="alert('click');"></a>
<a id="myAnchor" href="#"></a>
结果HTML

<a id="myAnchor" href="#" onmousedown="alert('click');"></a>
<a id="myAnchor" href="#"></a>

只要在您自己的代码中将“onmousedown”替换为“class”,您就应该是金色的

编辑:我用一个例子更新了另一个问题中的JSFIDLE(从标题中删除红色),效果很好。你能发布更多的代码来看看问题是否出在其他地方吗


使用JavaScript本身提供的
removeAttribute
。它将完全从标记中删除属性:

<a href="" class="foo" id="link">Hay</a>

<script>
var link = $('link');
link.removeAttribute('class');
console.log(link);  // <a id="link" href="">
</script>

var link=$('link');
link.removeAttribute('class');

console.log(链接);//

你的答案应该行得通,但不知为什么不行。我要调查这件事!奇怪的是,您的代码中可能还有其他干扰。我承认我不是一个MooTools专家(我上次使用它是在大约3年前),所以其他人可能会解释为什么它不能按预期工作。我可以问一下你为什么想要这个吗?拥有
class=”“
在任何方面都是无害的。@Luwe问题是我的代码正在调用另一个页面来检查表单,并且每当表单的元素具有属性类时,表单都无法提交。嗯。。。无论如何,我已经在下面添加了我的答案。谢谢大家的回答!奇怪的是,
element.erase
element.removeProperty
element.property=null
delete
都失败了。这些都是MooTools方法,我认为对于它们的框架,它们选择保持
class=”“
,使
addClass
removeClass
工作得更好更快。但我不确定这是否是原因。。。