Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除了对每个元素进行函数调用外,还有没有更通用的方法对HTML元素调用JS函数?_Javascript - Fatal编程技术网

Javascript 除了对每个元素进行函数调用外,还有没有更通用的方法对HTML元素调用JS函数?

Javascript 除了对每个元素进行函数调用外,还有没有更通用的方法对HTML元素调用JS函数?,javascript,Javascript,目前,我对每个元素进行了函数调用,如下所示: <textarea id="comment" cols=70 rows=5 onblur="cleanWordClipboard(this)" /> 到所有TextArea元素,所以 <textarea id="comment" cols=70 rows=5/> 保持原样。我想的是类似CSS的东西,它有规则将行为应用于某一类型的所有元素 谢谢 编辑1 到目前为止,我正在尝试,在我的页面底部,这实际上是一个包含所有动态页

目前,我对每个元素进行了函数调用,如下所示:

<textarea id="comment" cols=70 rows=5 onblur="cleanWordClipboard(this)" />
到所有TextArea元素,所以

<textarea id="comment" cols=70 rows=5/>

保持原样。我想的是类似CSS的东西,它有规则将行为应用于某一类型的所有元素

谢谢

编辑1

到目前为止,我正在尝试,在我的页面底部,这实际上是一个包含所有动态页面的主布局页面(使用ASP.NET MVC):


//感谢Johnathan Hedley的代码。
var交换码=新阵列(8211、8212、8216、8217、8220、8221、8226、8230);//来自char at的dec代码
变量交换字符串=新数组(“-”、“-”、“'、“'”、“\”、“\”、“\”、“*”、“…”);
函数cleanWordClipboard(输入){
//调试新代码
//对于(i=0;i
编辑2


[].forEach.call(document.getElementsByClassName('plaintextbox'),函数(element){
元素。addEventListener('blur',cleanWordClipboard);
//在cleanWordClipboard调用中,元素将如下所示
});
//感谢Johnathan Hedley的代码。
var交换码=新阵列(8211、8212、8216、8217、8220、8221、8226、8230);//来自char at的dec代码
变量交换字符串=新数组(“-”、“-”、“'、“'”、“\”、“\”、“\”、“*”、“…”);
函数cleanWordClipboard(输入){
//调试新代码
//对于(i=0;i
使用Jquery,它将适用于所有
textarea
元素

$('textarea').blur(function(){
     // code from cleanWordClipboard
});
或者干脆

$('textarea').blur(cleanWordClipboard);

使用Jquery,它将适用于所有
textarea
元素

$('textarea').blur(function(){
     // code from cleanWordClipboard
});
或者干脆

$('textarea').blur(cleanWordClipboard);

是的,您可以在vanilla JavaScript中执行此操作:

[].forEach.call(document.getElementsByClassName('comment'), function(element){
    element.addEventListener('blur', cleanWordClipboard);
    // the element will be this in the cleanWordClipboard call
});

请注意,我假设您使用
class=comment
而不是
id=comment
,因为文档中只有一个元素可以具有给定的id。

是的,您可以在普通JavaScript中执行此操作:

[].forEach.call(document.getElementsByClassName('comment'), function(element){
    element.addEventListener('blur', cleanWordClipboard);
    // the element will be this in the cleanWordClipboard call
});


注意,我假设您使用
class=comment
而不是
id=comment
,因为文档中只有一个元素可以具有给定的id。

使用jQuery的简单方法是
$(“textarea”).blur(cleanWordClipboard)

使用jQuery的简单方法是
$(“textarea”).blur(cleanWordClipboard)

这是一种方法:这是一种方法:使用es6,您可以执行
Array.from(document.querySelectorAll('.comment')).forEach(…)@FlorianMargaine,它既不短也不清晰;)@SamJolly将其更改为
document.querySelectorAll(“textarea”)
是的,但我真的建议使用比“textearea”更能证明未来的东西,因为一旦你的页面中有一个与注释无关的textarea,它就会崩溃。@SamJolly不要使用
input
(参数)在
cleanWordClipboard
中,但
(请参阅我答案中的注释)。使用es6,您可以执行
Array.from(document.querySelectorAll('.comment')).forEach(…)@FlorianMargaine,它既不短也不清晰;)@SamJolly将其更改为
document.querySelectorAll(“textarea”)
是的,但我真的建议使用比“textearea”更能证明未来的东西,因为一旦你的页面中有一个与注释无关的textarea,它就会崩溃。@SamJolly不要使用
input
(参数)在
cleanWordClipboard
中,但
(请参阅我回答中的注释)。将我的完整代码添加到EDIT1,但由于某些原因,EDIT1无法工作。您是否在文件中包含
Jquery
?是的。这是为了在@dystroy建议我使用的函数中引用“input”而不是“this”。感谢您的帮助,非常感谢。将我的完整代码添加到EDIT1,但由于某些原因,EDIT1无法工作。您是否在文件中包含
Jquery
?是的。这是为了在@dystroy建议我使用的函数中引用“input”而不是“this”。谢谢你的帮助,非常感谢。