Typeerror 对象<;对象>;没有方法';methodeX&x27;

Typeerror 对象<;对象>;没有方法';methodeX&x27;,typeerror,rangy,Typeerror,Rangy,我在chrome中遇到一个错误: 未捕获的TypeError:对象s1A没有方法“applyToSelection” 在Firefox(firebug)中,我得到以下信息: TypeError:val.applyToSelection不是函数 我使用rangy core和rangy CSSClassapplier 我的代码: <script type="text/javascript"> window.onload = function() { rangy.

我在chrome中遇到一个错误:

未捕获的TypeError:对象s1A没有方法“applyToSelection”

在Firefox(firebug)中,我得到以下信息:

TypeError:val.applyToSelection不是函数

我使用rangy core和rangy CSSClassapplier

我的代码:

<script type="text/javascript"> 
    window.onload = function() {    
    rangy.init();
      s1A = rangy.createCssClassApplier("css_1", true); 
    };

   //this is the Problem.
   function dosome (el) {
      var val = el.value;
      val.applyToSelection();
   }
</script>

<body>
  <button value="s1A" onclick="dosome(this);">test</button>
</body>

window.onload=函数(){
rangy.init();
s1A=rangy.createCssClassApplier(“css_1”,true);
};
//这就是问题所在。
函数dosome(el){
var val=el.value;
val.applyToSelection();
}
测试
如果我这样做:

<script type="text/javascript"> 
    window.onload = function() {    
    rangy.init();
      s1A = rangy.createCssClassApplier("css_1", true); 
    };
   function s1() {
      s1A.applyToSelection();
   }
</script>

<body>
  <button onclick="s1();">test</button>
</body>

window.onload=函数(){
rangy.init();
s1A=rangy.createCssClassApplier(“css_1”,true);
};
函数s1(){
s1A.applyToSelection();
}
测试

它很好用。但是我需要它作为一个选项字段,我想得到值

我建议将应用程序存储在一个对象中,每个属性名称对应一个输入值:

window.onload = function() {
    var appliers = {};
    rangy.init();
    appliers.s1A = rangy.createCssClassApplier("css_1", true); 
};

function dosome(el) {
    var val = el.value;
    appliers[val].applyToSelection();
}

我是JS的初学者,我不明白你的答案,但我找到了另一个答案。谢谢你,蒂姆,你是一个机构