Javascript 如何使用jQuery将所有活动按钮的值放入一个数组中
这把小提琴代表了我的问题: 基本上,当有人点击任何按钮时,Javascript 如何使用jQuery将所有活动按钮的值放入一个数组中,javascript,jquery,Javascript,Jquery,这把小提琴代表了我的问题: 基本上,当有人点击任何按钮时,onclick函数会改变按钮的背景色,这样用户就知道点击了哪个按钮,但我在小提琴中忽略了这部分代码。现在我尝试将所有单击按钮的值放入一个数组中,在fiddle中,它应该成为input元素的value。试着这样做: $(document).ready(function(){ $('button.clicked').click(function(){ var clickedButtons= new Ar
onclick
函数会改变按钮的背景色,这样用户就知道点击了哪个按钮,但我在小提琴中忽略了这部分代码。现在我尝试将所有单击按钮的值放入一个数组中,在fiddle中,它应该成为input
元素的value
。试着这样做:
$(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)”))内部。每个(function()
都不是控制台日志记录,就好像那部分代码根本没有解释一样。请帮助,我被卡住了如果你想在数组中添加按钮值,每次按下一个按钮,你都可以像下面那样编辑你的代码:
每次按下按钮时,我都调用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());
});
});
补充说明:
- 我从html中删除了所有的
buttons属性,因为如果您使用jQuery收听单击事件,则不需要它onclick=“…”
你不是根据它们的样式来选择它们(这根本不起作用-你实际上是在这里选择带有属性
背景色的按钮,其值为rgb(76,175,80)
),而是通过一个类将该样式设置为按钮,而不是通过在$上迭代有什么意义(这)
哪个引用指向单击的按钮?@AlonEitan正确,它没有意义。我留下的是OP发布的代码。我正在编辑我的答案,谢谢。我会再唠叨一次,问你:“如果你多次点击同一个按钮,会发生什么?”但我也会投票支持你的回答@AlonEitan说,数组中有重复的值。@AlonEitan@RIYAJKHAN正确,我在编辑代码时,在按下按钮后添加unbind()
函数。再次感谢你
clickedButtons.push(this.value); // adds element to the array
$(this).unbind('click'); // stop listening
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
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());
});
$(document).ready(function() {
$('button.clicked').click(function() {
alert($(this).text());
});
});