在javascript中的另一个元素中获取html元素

时间:2011-02-08 11:02:49

标签: javascript html

您好 我正在创建动态div元素,让我们说4 div就在那里。 DIV1,DIV2,DIV3,DIV4。每个div都有一组单选按钮rad1,rad2,rad3,rad4。见如下。

div1 ->rad1,rad2,rad3,rad4 groupName=rd1 ->end div1
div2 ->rad1,rad2,rad3,rad4 groupName=rd2 ->end div2
div3 ->rad1,rad2,rad3,rad4 groupName=rd3 ->end div3
div4 ->rad1,rad2,rad3,rad4 groupName=rd4 ->end div4

这是动态创建的html。我想从div2或div3中选择哪个收音机我必须写什么剧本?

4 个答案:

答案 0 :(得分:7)

  
function checkRadio() {
    var radios = document.getElementById('rBox').getElementsByTagName('input');
    for (var i = 0; i < radios.length; i++) {
        radios[i].onclick = function(e) {
            var pid =  this.parentNode.id;
            if ( pid == 'group-2' || pid == 'group-3' )
                alert('PARENT: ' + this.parentNode.id )
        }
    }
}

<body onload="checkRadio()">
<div id="rBox">
<div class="rad" id="group-1">
      <input type="radio" name="option" />
      .... 
    </div>
    <div class="rad" id="group-2">
      <input type="radio" name="option" />
      ....     
    </div>
    ....
 </div>
</body>

答案 1 :(得分:2)

使用jquery
使用jquery-&gt; $ .live()

答案 2 :(得分:2)

如果我理解你的话,这可能会对你有所帮助:

var num_of_options = 4;
var selected = new Array();
var op, i, j;

for (j=1;j<=num_of_options;j++) {
    op = document.getElementsByName("rd"+j);
    for (i in op) {
        if (op[i].checked) {
            selected[j] = op[i].value;
        }
    }
}

selected将包含每个div中无线电组的选定值。

答案 3 :(得分:2)

以下是粗略的示例代码,它将显示每个div中的选定值:

var arrDivs = ["div1", "div2", "div3"];
for (var i = 0; i < arrDivs.length; i++) {
    var oDiv = document.getElementById(arrDivs[i]);
    if (oDiv) {
        var arrInputs = oDiv.getElementsByTagName("input");
        var blnFound = false;
        for (var j = 0; j < arrInputs.length; j++) {
            var oInput = arrInputs[j];
            if (oInput.type == "radio" && oInput.checked) {
                alert("The value of selected radio in div '" + arrDivs[i] + "' is: " + oInput.value);
                blnFound = true;
                break;
            }
        }
        if (!blnFound)
            alert("div '" + arrDivs[i] + "' contains no selected radio button");
    }
    else {
        alert("div was not found: " + arrDivs[i]);
    }
}