【发布时间】:2016-03-18 20:17:14
【问题描述】:
我正在尝试将一个类添加到一个数组元素,它是一个特定的字符,在该字符的按键上。预期的结果是,如果按下“y”键,“selected”类将只添加到数组中的“y”,这将改变它的颜色并划一条线。
我设置了一个按键事件,我可以将类添加到整个 div 中,其中数组已在按键时附加,但我无法弄清楚如何在按键时将类添加到数组中的单个元素那个角色。
我的 JS 代码:
var $arr = "a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 ".split("");
$('#characters').append($arr);
$(document).keypress(function(event) {
var pressed = event.keyCode;
var alreadyPressed = [];
var pressedChar = String.fromCharCode(pressed);
console.log(pressedChar, pressed);
for (i = 0; i <= $arr.length; i++) {
var arrCharacter = $arr[i];
if((arrCharacter === pressedChar) && (jQuery.inArray(pressed, alreadyPressed) === -1)) {
$(this).addClass("selected");
alreadyPressed.push(pressed);
}
}
})
Here 也是一个小提琴。
【问题讨论】:
-
字符串数组不是 DOM 元素,所以没有样式。您希望在哪里看到颜色和线条的变化?
-
如何将类添加到数组索引中?
-
这是我的问题,@epascarello。我已将数组附加到 id 为“characters”的 div 中——所以,我的问题是,如何向该数组的单个元素添加一个类,该元素现在正在显示?
-
你想将它添加到 div 中的文本中,而不是数组中。
-
所以,@freedomn-m,我期待看到数组在 div 中显示的位置发生了变化。我只是不知道如何更改单个元素/字符而不是全部。我是否需要将数组手动编码为数组的每个元素的跨度?我需要为数组中的每个字符制作一个按钮吗?
标签: javascript jquery css arrays