对所有div使用一个onchange javascript函数

对所有div使用一个onchange javascript函数,javascript,jquery,html,Javascript,Jquery,Html,我有多个,有时是空白,有时是文字 我想插入一个简单的文本代码,例如将自动更改为支票\u2713 目前,我的代码如下: <textarea name="1-S" onchange="check(this.value)"> <check> //an input written by a user </textarea> <textarea name="1-NI" onchange="check(this.value)"> <check

我有多个,有时是空白,有时是文字

我想插入一个简单的文本代码,例如将自动更改为支票\u2713

目前,我的代码如下:

<textarea name="1-S" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>
<textarea name="1-NI" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>
<textarea name="1-C" onchange="check(this.value)">
   <check> //an input written by a user
</textarea>

(This block of <textarea> gets repeated, but of course, with different name in each one.)

<script type="text/javascript">
    function check(str){
        var res = str.replace("<check>", "\u2713");
        ????
    }
</script>
然后,输出将替换为实际的检查符号\u2713

挑战是,我不想在每个文件中添加ID,然后为每个文件编写脚本。那么,有没有一种方法可以让我使用这个脚本来应用于所有人


非常感谢

您可以使用getElementsByTagName方法创建文本区域标记数组。

是。可以使用jquery将事件处理程序绑定到类型的所有元素

$('textarea').on('change', function() {  
    var text = $(this).val();

    if (text.match(/\<check\>/)) {        
        $(this).val(text.replace(/\<check\>/, "\u2713"));
    }  
});
这样做的好处是,您可以从html中删除内联的“onchange”处理程序,并将验证逻辑严格整合到JavaScript中

要替换实际的textarea内容,需要使用字符串replace regexp的结果更新textarea的值。var text=$this.val只是将textarea的内容分配给变量text,它不是对textarea的innerHTML部分的引用


另一方面,如果您希望允许用户在表单中使用短代码,请选择方括号语法,例如[check]。

因为您使用的是jQuery:

$("textarea").each(function(index, textarea) {
    // do replacement here
});
请注意,您需要使用放入文本区域:检查


此外,您还可以在不使用任何Javascript的情况下添加复选标记,如下所示:&x2713

我试过:var text=$this.val;text.replace,\u2713;这不起作用。我如何在这个??textarea.value=textarea.value.replace,&x2713;中应用replace函数;;那没用。我猜在函数内部,进行了更改,但我不知道如何将更改返回到textarea?是否包含textarea.value=。。。一开始就分手?单独调用replace是不行的——Javascript字符串是不可变的。