Javascript在执行数组';推动';
我有3组单选按钮,每组包含多个按钮。使用bootstrap3中的Javascript在执行数组';推动';,javascript,jquery,Javascript,Jquery,我有3组单选按钮,每组包含多个按钮。使用bootstrap3中的data toggle=“buttons”时,我可以确保每组只选择一个答案。到目前为止一切正常。单击事件会触发下面的函数,并返回所选项目的值。我的问题是如何处理数组values中存储的返回值,并为每个键指定一个与按钮组相对应的名称 假设我选择了Red+small+Circle,那么getValues将返回键=>值: [0]=>红色 [1] =>小型 [2] =>圆圈 现在,如果我选择small+Circle: [0]=>小型
data toggle=“buttons”
时,我可以确保每组只选择一个答案。到目前为止一切正常。单击事件会触发下面的函数,并返回所选项目的值。我的问题是如何处理数组values
中存储的返回值,并为每个键指定一个与按钮组相对应的名称 假设我选择了Red+small+Circle
,那么getValues
将返回键=>值:
- [0]=>红色
- [1] =>小型
- [2] =>圆圈
small+Circle
:
- [0]=>小型
- [1] =>圆圈
- [颜色]=>x
- [大小]=>y
- [形状]=>z
Red///Grp 1颜色
蓝色
小///Grp2大小
大的
圆形///Grp3形状
广场
函数getValues(){
var值=[];
对于(var x=0;x
谢谢请使用以下代码:
function getValues(){
var values = [];
for(var x = 0; x < radios.length; x++){
if(radios[x].type == "radio" && radios[x].checked){
var tmp={};
tmp[radios[x].name]=radios[x].value;
values.push(tmp);
}
}
return values;
}
$( "#Btn" ).click(function() {
var x = getValues();
$.each(x, function(k, v) {
//display the key and value pair
alert(k + ' is ' + v);
});
函数getValues(){
var值=[];
对于(var x=0;x
下面的示例代码将“全部选中”复选框设置为数组
// A function that return an array with the selected items
function getSelected() {
var selected = [];
var checkboxes = $('input[type=checkbox]:checked');
for(var i = 0; i < checkboxes.length; i++){
if(checkboxes[i].checked){
selected.push(checkboxes[i].value);
}
}
return selected;
}
//返回包含选定项的数组的函数
函数getSelected(){
所选var=[];
var复选框=$('input[type=checkbox]:checked');
对于(变量i=0;i
请注意,这适用于jQuery。如前所述,数组在JS中的处理方式有所不同。您真正想要的是一个哈希表……JS只是一个对象(某种程度上) 可以使用的一种技术是创建一个类似数组的对象,该对象的名称既是键又是索引 需要注意的是,这不是一个功能齐全的数组,因为它没有实现推送、弹出、切片等功能
var values = {},
length = 0;
for(var x = 0; x < radios.length; x++){
if(radios[x].type == "radio" && radios[x].checked){
//Assign the name as a key on the object
values[radios[x].name] = radios[x].value;
//Also assign the index as a key
values[x] = radios[x].value;
length += 1;
}
}
values.length = length;
return values;
它还允许您通过索引访问它们:
values[0];
更好的是,您可以使用普通for循环对其进行迭代:
for(var i = 0; i < values.length; i++){
//I act just like an array!!
values[i];
}
for(变量i=0;i
您的代码可能与以下内容类似:
<script>
function getValues() {
var values={};
var inputs = document.getElementsByTagName("input");
console.log(inputs);
for (var i=0;i<inputs.length;++i)
if (inputs[i].type==="radio" && inputs[i].checked)
values[inputs[i].name]=inputs[i].value;
console.log(values);
}
</script>
<button onclick="getValues()">Hit me</button>
试试这个
我认为关联数组在Javascript中是可能的
红色
蓝色
小的
大的
圆圈
广场
函数getValues(){
var值=[];
var radios=document.getElementsByClassName(“radiotrp”);
控制台日志(无线电);
对于(var x=0;x
您不能使用$。每个关联数组都有详细信息数组没有索引名您想要一个对象这可能会对您有所帮助Javascript中没有关联数组您可以将值属性指定为
color:red
,size:small
等,而不仅仅是red
,small
等,然后是spli谢谢,我不知道javascript中没有关联数组…@Chavan-谢谢有用的链接谢谢alot Josh。只是将索引分配为键的部分不应该是值[x]=radios[x].name;取而代之?@user3003977-我想这取决于你是想要其中的名称还是值。
for(var i = 0; i < values.length; i++){
//I act just like an array!!
values[i];
}
<script>
function getValues() {
var values={};
var inputs = document.getElementsByTagName("input");
console.log(inputs);
for (var i=0;i<inputs.length;++i)
if (inputs[i].type==="radio" && inputs[i].checked)
values[inputs[i].name]=inputs[i].value;
console.log(values);
}
</script>
<button onclick="getValues()">Hit me</button>
[ values.color||"default", values.size||"default", values.shape||"default" ]
<input type="radio" name="color" class="radioGrp" value="red"/> Red
<input type="radio" name="color" class="radioGrp" value="blue"/> Blue
<br/>
<input type="radio" name="size" class="radioGrp" value="small"/> small
<input type="radio" name="size" class="radioGrp" value ="Large"/> Large
<br/>
<input type="radio" name="shape" class="radioGrp" value="circle"/>circle
<input type="radio" name="shape" class="radioGrp" value="square"/>square
<input type='button' id="Btn" />
function getValues(){
var values = [];
var radios = document.getElementsByClassName("radioGrp");
console.log(radios);
for(var x = 0; x < radios.length; x++){
if(radios[x].type == "radio" && radios[x].checked){
values[radios[x].name] = (radios[x].value);
}
}
return values;
}
$("#Btn").click(function() {
var x = getValues();
alert(x["color"]);
alert(x["size"]);
alert(x["shape"]);
for(var prop in x ){
alert( prop + " is " + x[prop] );
}
});