使用MooTools完全删除课程

时间:2011-08-22 14:56:49

标签: javascript string mootools

这篇文章与我的previous one相关联。

我能够感谢Pointy使用MooTools正确使用RemoveClass的答案,但不幸的是我仍有问题:即使从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>

单选按钮代码

<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

2 个答案:

答案 0 :(得分:5)

使用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>

示例:http://jsfiddle.net/LDBUy/

答案 1 :(得分:2)

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

http://mootools.net/docs/core/Element/Element#Element:removeProperty

他们的例子:

<强> HTML

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

<强>的JavaScript

//Eww... inline JavaScript is bad! Let's get rid of it.
$('myAnchor').removeProperty('onmousedown');

结果HTML

<a id="myAnchor" href="#"></a>

只需在自己的代码中将'onmousedown'替换为'class',你应该是金色的。

编辑:我用你的另一个问题更新了jsfiddle的例子(从标题中删除了红色),它运行正常。您可以发布更多代码以查看问题是否在其他地方吗?

http://jsfiddle.net/FrT6V/1/