使用 for 循环和 String.fromCharCode() 创建 26 个字母按钮
Creating 26 alphabet letter buttons with the for loop and String.fromCharCode()
这里有一些 HTML 代码作为示例:
<button onclick="setLetter('A');">A</button>
<button onclick="setLetter('B');">B</button>
<button onclick="setLetter('C');">C</button>
<button onclick="setLetter('D');">D</button>
<button onclick="setLetter('E');">E</button>
<button onclick="setLetter('F');">F</button>
<button onclick="setLetter('G');">G</button>
<button onclick="setLetter('H');">H</button>
<button onclick="setLetter('I');">I</button>
<button onclick="setLetter('J');">J</button>
...
...
<div id="name"></div>
这里是 javascript 部分:
function setLetter(letter) {
document.getElementById('name').innerHTML = document.getElementById('name').innerHTML + letter;
}
这工作得很好,但有很多冗余,我想通过使用 for 循环和方法 String.fromCharCode()
基本上删除这些冗余。我只是不知道该怎么做。
试试这个:
var html = '';
var c;
for (var i = 65; 90 >= i; i++) {// A-65, Z-90
c = String.fromCharCode(i);
html += '<button onclick="setLetter(\'' + c + '\');">' + c + '</button>';
}
document.getElementById('box').innerHTML = html;
var setLetter = function(x) {
document.getElementById('name').innerHTML += x;
};
<div id="box"></div>
<div id="name"></div>
尝试this。
HTML
<div id="buttonsHolder"></div>
<div id="name"></div>
Javascript
window.addEventListener( "load", function( windowLoadE ) {
var p, letter, button, holder;
holder = document.getElementById( "buttonsHolder" );
for ( var i = 65; i <= 90; i++ ) {
if ( i == 65 || i == 75 || i == 84 ) {
p = document.createElement( "p" );
}
letter = String.fromCharCode( i );
button = document.createElement( "button" );
button.innerHTML = letter;
button.setAttribute( "data-letter", letter );
button.onclick = function( e ) { setLetter( this.getAttribute( "data-letter" ) ); };
p.appendChild( button );
if ( i == 74 || i == 83 || i == 90 ) {
holder.appendChild( p );
}
}
} );
function setLetter( letter ) {
var div = document.getElementById( "name" );
div.innerHTML = div.innerHTML + letter;
}
这个解决方案与@Arvind 类似,但我认为最好使用 html 标签的 attribute
并使用 function
设置 onclick
。
window.addEventListener( "load", function( windowLoadE ) {
var p, letter, button, holder;
holder = document.getElementById( "buttonsHolder" );
for ( var i = 65; i <= 90; i++ ) {
if ( i == 65 || i == 75 || i == 84 ) {
p = document.createElement( "p" );
}
letter = String.fromCharCode( i );
button = document.createElement( "button" );
button.innerHTML = letter;
button.setAttribute( "data-letter", letter );
button.onclick = function( e ) { setLetter( this.getAttribute( "data-letter" ) ); };
p.appendChild( button );
if ( i == 74 || i == 83 || i == 90 ) {
holder.appendChild( p );
}
}
} );
function setLetter( letter ) {
var div = document.getElementById( "name" );
div.innerHTML = div.innerHTML + letter;
}
<div id="buttonsHolder"></div>
<div id="name"></div>
这里有一些 HTML 代码作为示例:
<button onclick="setLetter('A');">A</button>
<button onclick="setLetter('B');">B</button>
<button onclick="setLetter('C');">C</button>
<button onclick="setLetter('D');">D</button>
<button onclick="setLetter('E');">E</button>
<button onclick="setLetter('F');">F</button>
<button onclick="setLetter('G');">G</button>
<button onclick="setLetter('H');">H</button>
<button onclick="setLetter('I');">I</button>
<button onclick="setLetter('J');">J</button>
...
...
<div id="name"></div>
这里是 javascript 部分:
function setLetter(letter) {
document.getElementById('name').innerHTML = document.getElementById('name').innerHTML + letter;
}
这工作得很好,但有很多冗余,我想通过使用 for 循环和方法 String.fromCharCode()
基本上删除这些冗余。我只是不知道该怎么做。
试试这个:
var html = '';
var c;
for (var i = 65; 90 >= i; i++) {// A-65, Z-90
c = String.fromCharCode(i);
html += '<button onclick="setLetter(\'' + c + '\');">' + c + '</button>';
}
document.getElementById('box').innerHTML = html;
var setLetter = function(x) {
document.getElementById('name').innerHTML += x;
};
<div id="box"></div>
<div id="name"></div>
尝试this。
HTML
<div id="buttonsHolder"></div>
<div id="name"></div>
Javascript
window.addEventListener( "load", function( windowLoadE ) {
var p, letter, button, holder;
holder = document.getElementById( "buttonsHolder" );
for ( var i = 65; i <= 90; i++ ) {
if ( i == 65 || i == 75 || i == 84 ) {
p = document.createElement( "p" );
}
letter = String.fromCharCode( i );
button = document.createElement( "button" );
button.innerHTML = letter;
button.setAttribute( "data-letter", letter );
button.onclick = function( e ) { setLetter( this.getAttribute( "data-letter" ) ); };
p.appendChild( button );
if ( i == 74 || i == 83 || i == 90 ) {
holder.appendChild( p );
}
}
} );
function setLetter( letter ) {
var div = document.getElementById( "name" );
div.innerHTML = div.innerHTML + letter;
}
这个解决方案与@Arvind 类似,但我认为最好使用 html 标签的 attribute
并使用 function
设置 onclick
。
window.addEventListener( "load", function( windowLoadE ) {
var p, letter, button, holder;
holder = document.getElementById( "buttonsHolder" );
for ( var i = 65; i <= 90; i++ ) {
if ( i == 65 || i == 75 || i == 84 ) {
p = document.createElement( "p" );
}
letter = String.fromCharCode( i );
button = document.createElement( "button" );
button.innerHTML = letter;
button.setAttribute( "data-letter", letter );
button.onclick = function( e ) { setLetter( this.getAttribute( "data-letter" ) ); };
p.appendChild( button );
if ( i == 74 || i == 83 || i == 90 ) {
holder.appendChild( p );
}
}
} );
function setLetter( letter ) {
var div = document.getElementById( "name" );
div.innerHTML = div.innerHTML + letter;
}
<div id="buttonsHolder"></div>
<div id="name"></div>