我想通过点击类来循环一个函数。代码看起来像这样。
课程方式
HTML
<button class="btn">B</button>
<button class="btn">I</button>
<div id="ctn"></div>
的JavaScript
<script>
var btn = document.getElementsByClassName('btn');
var ctn = document.getElementById('ctn');
ctn.contentEditable = true;
for(i=0; i<btn.length; i++){
var a = ["'bold'","'italic'"];
btn[i].addEventListener('click', function(){
document.execCommand(a[i],false,null);
}, false);}
</script>
点击它时,它不会发生。使用ID查看手册下方。
ID方式
HTML
<button id="bold">B</button>
<button id="italic">I</button>
<div id="ctn"></div>
的JavaScript
var bold = document.getElementById('bold');
var italic = document.getElementById('italic');
bold.addEventListener('click', function(){document.execCommand('bold',false,null);}, false);
italic.addEventListener('click', function(){document.execCommand('italic',false,null);}, false);
使用ID方式是否有效。但是班级不起作用。如何按类循环函数?
nb:在JavaScript而不是JQuery上回答它。感谢您阅读:)
答案 0 :(得分:1)
您需要使用闭包来绑定循环中的元素,如下所示:
for(i=0; i<btn.length; i++){
(function(i) { //closure inside so i is correct.
var a = ["bold","italic"]; //removed quotes
btn[i].addEventListener('click', function(){
document.execCommand(a[i],false,null);
}, false)
})(i);
}