单选按钮Javascript数组

单选按钮Javascript数组,javascript,Javascript,我有一个单选按钮,如下所示 Apple <input type="radio" id="one" name="apple" data-price="10" value="light"/> Light <input type="radio" id="two" name="apple" data-price="20" value="dark" /> Dark <input type="text" id="appleqty" name="appleqty" value="

我有一个单选按钮,如下所示

Apple
<input type="radio" id="one" name="apple" data-price="10" value="light"/> Light
<input type="radio" id="two" name="apple" data-price="20" value="dark" /> Dark
<input type="text" id="appleqty" name="appleqty" value="" />

Mango
<input type="radio" id="three" name="Mango" data-price="30" value="light"/> Light
<input type="radio" id="one" name="Mango" data-price="40" value="dark" /> Dark
<input type="text" id="Mangoqty" name="Mangoqty" value="" />

Pine Apple
<input type="radio" id="four" name="Pineapple" data-price="50" value="light"/> Light
<input type="radio" id="five" name="Pineapple" data-price="60" value="dark" /> Dark
<input type="text" id="Pineappleqty" name="Pineappleqty" value="" />

Grape
<input type="radio" id="six" name="Grape" data-price="70" value="light"/> Light
<input type="radio" id="seven" name="Grape" data-price="80" value="dark" /> Dark
<input type="text" id="Pineappleqty" name="Pineappleqty" value="" />
   array
      0 => 
        array
          'apple' => string 'light' (length=10)
          'price' => string '50' (length=1)
      1 => 
        array
          'Pineapple' => string 'dark' (length=10)
          'price' => string '60' (length=1)
注意事项
数组键应该是单选按钮名称,价格应该取自单选按钮中的数据价格
,我需要将此数组序列化
这应该使用javascript来完成。

您需要迭代
s。为此:

  • 如果您事先知道要查找的元素
    名称
    (即
    苹果
    芒果
    ,等等),您可以对这些名称中的每个名称执行
    文档.getElementsByName
    ,如中所述

  • 如果您不知道它们(它们是动态的),只需将它们包装在具有给定id的
    中,并迭代其子项,如中所示

  • 在迭代给定
    名称
    的无线电时,检查每个名称的
    checked
    属性,以了解选择了哪一个,如中所示

    您需要使用以下键值对构建关联数组,如中所示:

  • 名称
    属性
  • 文字
    价格
    数据价格
    属性。您需要使用
    getAttribute('data-price')
    来获取
    data-price
    属性的值 例如:

    function createArray() {
    
        var myArr = new Array();
        myArr[0] = createSubArray('apple');
        myArr[1] = createSubArray('Mango');
        myArr[2] = createSubArray('Pineapple');
        myArr[3] = createSubArray('Grape');
        return myArr;
    }
    
    
    function createSubArray(name) {
        var arr = new Array();
        elems = document.getElementsByName(name);
        for (var i = 0; i < elems.length; i++) {
            if (elems[i].checked) {
                arr[name] = elems[i].value;
                arr['price'] = elems[i].getAttribute('data-price');
            }
        }
        return arr;
    }​
    
    函数createArray(){
    var myArr=新数组();
    myArr[0]=createSubArray('apple');
    myArr[1]=createSubArray('Mango');
    myArr[2]=createSubArray(“菠萝”);
    myArr[3]=createSubArray('Grape');
    返回myArr;
    }
    函数createSubArray(名称){
    var arr=新数组();
    elems=document.getElementsByName(名称);
    对于(变量i=0;i

    你可以看到这个例子在这里起作用。

    请展示你迄今为止的代码,并解释你在哪里卡住了。答案链接到的同一个网站的问题中有很多代码示例。我已经为你准备了一个示例。关于代码,您不了解什么?您正在执行函数
    return
    之后的
    警报
    。阵列中没有存储值。您是否尝试了
    警报
    删除您要查找的值?看看这个。还是这个