无法读取属性";removeClass“;未定义的。Javascript

无法读取属性";removeClass“;未定义的。Javascript,javascript,Javascript,我正在尝试使用以下调用调用remove类: MyUtils.removeClass(e,“empty”) 但我在调试器中遇到错误“无法读取未定义的属性”removeClass。我似乎无法找出我在removeClass调用中遗漏了什么 这是我的removeClass函数 var removeClass = function removeClass(el, classStr) { delete el.className; }; 下面是完整的代码,HTML正在测试这两种方法 <body

我正在尝试使用以下调用调用remove类:

MyUtils.removeClass(e,“empty”)

但我在调试器中遇到错误“无法读取未定义的属性”removeClass。我似乎无法找出我在removeClass调用中遗漏了什么

这是我的removeClass函数

var removeClass = function removeClass(el, classStr) {
    delete el.className;
};
下面是完整的代码,HTML正在测试这两种方法

<body>
    <div id="foo" class="column empty">Halloween!</div>
    <script type="text/javascript" src="utils.js"></script>
    <script>
        var e = document.getElementById("foo");
        var q = function (s){ document.write("<div>"+s+"</div>"); }
        q("initial (" + e.className+")");
        MyUtils.removeClass(e,"empty");
        q("removed empty (" + e.className+")");
        MyUtils.addClass(e,"column");
        q("added column again (" + e.className+")");
        MyUtils.removeClass(e,"scary");
        q("removed scary (" + e.className+")");
        MyUtils.addClass(e,"lum");
        q("added lum (" + e.className+")");
        MyUtils.removeClass(e,"column");
        q("removed column (" + e.className+")");
        MyUtils.addClass(e,"foo");
        q("added foo (" + e.className+")");
        MyUtils.addClass(e,"bar");
        q("added bar (" + e.className+")");
    </script>
</body>
对于,您必须指定从中显示为
MyUtil

var MyUtil = (function () {
    // ... (define the functions of the module)

    // reveal its "public" functions
    return {
        addClass: addClass,
        removeClass: removeClass,
        walkTheDom: walkTheDom,
        getElemebtsByClassName: getElemebtsByClassName
    };
})();
如果没有最后一步,
MyUtil
将保存
未定义的
值,而不引用正在定义的
函数。

使用,您必须指定从中显示为
MyUtil
的内容:

var MyUtil = (function () {
    // ... (define the functions of the module)

    // reveal its "public" functions
    return {
        addClass: addClass,
        removeClass: removeClass,
        walkTheDom: walkTheDom,
        getElemebtsByClassName: getElemebtsByClassName
    };
})();
如果没有最后一步,
MyUtil
将保存
未定义的
值,而不引用正在定义的
函数。

使用,您必须指定从中显示为
MyUtil
的内容:

var MyUtil = (function () {
    // ... (define the functions of the module)

    // reveal its "public" functions
    return {
        addClass: addClass,
        removeClass: removeClass,
        walkTheDom: walkTheDom,
        getElemebtsByClassName: getElemebtsByClassName
    };
})();
如果没有最后一步,
MyUtil
将保存
未定义的
值,而不引用正在定义的
函数。

使用,您必须指定从中显示为
MyUtil
的内容:

var MyUtil = (function () {
    // ... (define the functions of the module)

    // reveal its "public" functions
    return {
        addClass: addClass,
        removeClass: removeClass,
        walkTheDom: walkTheDom,
        getElemebtsByClassName: getElemebtsByClassName
    };
})();

如果没有最后一步,
MyUtil
将保留
未定义的
值,而不引用正在定义的
函数。

问题是,只能在
MyUtils
内部访问函数,而不能从外部访问函数

你可以用

var MyUtils={
addClass:函数(el,classStr){
if(el.className!==classStr){
el.className=classStr;
}
},
removeClass:函数(el,classStr){
删除el.className;
}
/*, ... */
};
或者,如果你也想有私有变量

var MyUtils = (function(){
  var thisIsPrivate = whatever;
  function addClass(el, classStr) {
    if (el.className !== classStr) {
      el.className = classStr;
    }
  },
  function removeClass(el, classStr) {
    delete el.className;
  }
  /* ... */
  // Export public properties to the outside:
  return {addClass: addClass, removeClass: removeClass/*, ... */};
})();

问题是您的函数只能在
MyUtils
内部访问,而不能从外部访问

你可以用

var MyUtils={
addClass:函数(el,classStr){
if(el.className!==classStr){
el.className=classStr;
}
},
removeClass:函数(el,classStr){
删除el.className;
}
/*, ... */
};
或者,如果你也想有私有变量

var MyUtils = (function(){
  var thisIsPrivate = whatever;
  function addClass(el, classStr) {
    if (el.className !== classStr) {
      el.className = classStr;
    }
  },
  function removeClass(el, classStr) {
    delete el.className;
  }
  /* ... */
  // Export public properties to the outside:
  return {addClass: addClass, removeClass: removeClass/*, ... */};
})();

问题是您的函数只能在
MyUtils
内部访问,而不能从外部访问

你可以用

var MyUtils={
addClass:函数(el,classStr){
if(el.className!==classStr){
el.className=classStr;
}
},
removeClass:函数(el,classStr){
删除el.className;
}
/*, ... */
};
或者,如果你也想有私有变量

var MyUtils = (function(){
  var thisIsPrivate = whatever;
  function addClass(el, classStr) {
    if (el.className !== classStr) {
      el.className = classStr;
    }
  },
  function removeClass(el, classStr) {
    delete el.className;
  }
  /* ... */
  // Export public properties to the outside:
  return {addClass: addClass, removeClass: removeClass/*, ... */};
})();

问题是您的函数只能在
MyUtils
内部访问,而不能从外部访问

你可以用

var MyUtils={
addClass:函数(el,classStr){
if(el.className!==classStr){
el.className=classStr;
}
},
removeClass:函数(el,classStr){
删除el.className;
}
/*, ... */
};
或者,如果你也想有私有变量

var MyUtils = (function(){
  var thisIsPrivate = whatever;
  function addClass(el, classStr) {
    if (el.className !== classStr) {
      el.className = classStr;
    }
  },
  function removeClass(el, classStr) {
    delete el.className;
  }
  /* ... */
  // Export public properties to the outside:
  return {addClass: addClass, removeClass: removeClass/*, ... */};
})();

错误提示未定义MyUtils
,或者在使用MyUtils的位置不可用。你能为代码片段提供更多的上下文吗?我刚刚添加了调用它的HTML代码,以及完整的javascript MyUtils函数。我建议看一看错误提示
MyUtils
未定义或在使用它的地方不可用。你能为代码片段提供更多的上下文吗?我刚刚添加了调用它的HTML代码,以及完整的javascript MyUtils函数。我建议看一看错误提示
MyUtils
未定义或在使用它的地方不可用。你能为代码片段提供更多的上下文吗?我刚刚添加了调用它的HTML代码,以及完整的javascript MyUtils函数。我建议看一看错误提示
MyUtils
未定义或在使用它的地方不可用。你能为代码片段提供更多的上下文吗?我刚刚添加了调用它的HTML代码,以及完整的javascript MyUtils函数。我建议看一下