这是代表我的问题的小提琴:https://jsfiddle.net/Ognj3n/jLjh9oLm/
基本上,当有人点击任何按钮onclick
时,功能正在改变按钮的背景颜色,以便用户知道点击了哪个按钮,但我在小提琴中省略了那部分代码。现在我尝试将所有单击按钮的值放入一个数组中,小提琴它应该成为value
元素的input
。试着这样做:
$(document).ready(function(){
$('button.clicked').click(function(){
var clickedButtons= new Array();
$('button[background-color="rgb(76, 175, 80)"]').each(function(){
clickedButtons[clickedButtons.length]=this.value;
});
});
});
但是在$('button[background-color="rgb(76, 175, 80)"]').each(function()
内部,没有什么是控制台记录,就好像那部分代码根本没有解释一样。请帮忙,我被困了
答案 0 :(得分:3)
如果要在数组中添加按钮值,每次按下按钮,您都可以编辑代码,如下所示:
每次按下按钮,我都会调用push()
函数,该函数会在数组中添加元素值。
<强>代码:强>
$(document).ready(function() {
var clickedButtons = new Array();
$('button.clicked').click(function() {
clickedButtons.push(this.value); // adds element to the array
$(this).unbind('click'); // stop listening
console.log(clickedButtons);
$("here").val(clickedButtons.join());
});
});
附加说明:
onclick="..."
按钮属性,因为如果您使用jQuery监听click事件,则不需要。-
编辑(切换版本)
如果您需要在数组中切换按钮值,您只需进行以下编辑:
FROM:
clickedButtons.push(this.value); // adds element to the array
$(this).unbind('click'); // stop listening
TO:
var index = clickedButtons.indexOf(this.value);
if (index === -1)
clickedButtons.push(this.value); //value not found so push it
else
clickedButtons.splice(index, 1); // value found so remove it
答案 1 :(得分:0)
Below is the working fiddle
[$(document).ready(function() {
var clickedButtons = new Array();
$('button.clicked').click(function() {
$(this).css('background','red');
clickedButtons.push( this.value);
$("#here").val(clickedButtons.join());
});
}); ]
答案 2 :(得分:0)
您需要使用指向当前
的此变量
$(document).ready(function() {
$('button.clicked').click(function() {
alert($(this).text());
});
});