如何使用javascript获取无序列表中单选按钮的选定索引和值

如何使用javascript获取无序列表中单选按钮的选定索引和值,javascript,select,radio-button,Javascript,Select,Radio Button,我有一个单选按钮的无序列表。我想获取选中单选按钮的ID 以下是HTML: <ul class="class1"> <li> <label id="id1"> <input id="id1A" type="radio" value="2" name="name1" onchange="say(); return false;"> <span class="className1">Some Text1</span&g

我有一个单选按钮的无序列表。我想获取选中单选按钮的ID

以下是HTML:

<ul class="class1">
 <li>
  <label id="id1">
   <input id="id1A" type="radio" value="2" name="name1" onchange="say(); return false;">
   <span class="className1">Some Text1</span>
  </label>
 </li>
 <li>
  <label id="id2">
   <input id="id2A" type="radio" value="1" name="name1" onchange="say(); return false;">
   <span class="className1">Some Text2</span>
  </label>
 </li>
</ul>

<ul class="class2">
 <li>
  <label id="id21">
   <input id="id21A" type="radio" value="2" name="name2" onchange="say(); return false;">
   <span class="className21">Some Text21</span>
  </label>
 </li>
 <li>
  <label id="id2">
   <input id="id22A" type="radio" value="1" name="name2" onchange="say(); return false;">
   <span class="className21">Some Text22</span>
  </label>
 </li>
</ul>
下面是Javascript:

<script type="text/javascript">
function say() {
    var firstChild = document.getElementsByClassName('class1');
        firstChild = Array.prototype.slice.call(firstChild);
        for(var j =0; j < parent.length; j++){  
            var firstChildElem = firstChild;
            for (var x = 0; x < secondChild.length; x ++) {
                if (secondChild[x].checked) {
                    alert("You checked " + secondChild[w]);             
                }
            }
        }
</script>
<script type="text/javascript">
function say(currID){
alert("You checked: " + currID);
}
</script>
但是这个脚本不起作用。

我建议使用来做这种事情。jQuery的解决方案将非常简单:

$("input:radio[name=name1]:checked").val();
其中name1将替换为name2。不过,我不确定SelectedIndex是什么意思。下拉列表已经选择了索引,但单选按钮要么被选中,要么不被选中…

最简单的方法是: 1.改变一次=说;to onchange=说“CURRID”; 2.新Javascript:

<script type="text/javascript">
function say() {
    var firstChild = document.getElementsByClassName('class1');
        firstChild = Array.prototype.slice.call(firstChild);
        for(var j =0; j < parent.length; j++){  
            var firstChildElem = firstChild;
            for (var x = 0; x < secondChild.length; x ++) {
                if (secondChild[x].checked) {
                    alert("You checked " + secondChild[w]);             
                }
            }
        }
</script>
<script type="text/javascript">
function say(currID){
alert("You checked: " + currID);
}
</script>

然后,如果您不再需要输入标记的id=id1A部分,您可以删除这些部分。

您在哪里定义secondChild?所选索引是什么意思?您的答案毫无意义