js调试出现问题,点击内容后不弹出新的选项

代码如下:

 <script type="text/javascript">
        function RadioClick(obj) {
            var radioList = document.getElementById(obj.id).all.tags("input");
            for (var i = 0; i < radioList.length; i++) {
                if (radioList[i] != null && radioList[i].type == "radio") {
                    var objDeep = document.getElementById("ctl00_ContentPlaceHolder1_Row" + radioList[i].value);
                    //  var objDeep2=document.getElementById("ctl00_ContentPlaceHolder2_Row"+radioList[i].value);

                    if (objDeep != null) {
                        if (radioList[i].checked)
                            objDeep.style["display"] = "block";
                        else
                            objDeep.style["display"] = "none";
                    }
                    var objRowEdit = document.getElementById("ctl00_ContentPlaceHolder1_rowEdit" + radioList[i].value);
                    if (objRowEdit != null) {
                        if (radioList[i].checked) {
                            objRowEdit.style["display"] = "block";
                            if (radioList[i].value == "1") {
                                var objDateEdit = document.getElementById("ctl00$ContentPlaceHolder1$QAEdit1_1");
                                if (objDateEdit != null && objDateEdit.value == "") {
                                    objDateEdit.value = objDateEdit.NowDate;
                                }
                            }
                        }
                        else {
                            objRowEdit.style["display"] = "none";
                        }
                    }
                }
            }
        }



问题:

img

把第一句换成以下代码

var box = document.getElementById(obj.id);
var radioList = box.getElementsByTagName('input');

第一句就异常了 你那个document.getElementById(obj.id).all是null

你打印下document.getElementById(obj.id).all这个

把obj.id和document.getElementById(obj.id)打印出来看看有没有值

img


你可以改一下这句话,getElementById获取的只有一个,并不需要all,所以出现了报错

你把这句话var radioList = document.getElementById(obj.id).all.tags("input");
换成var radioList = document.querySelectorAll(obj.id + ' input');
这个试试

这个是示例:你可以运行看看
<html>
<head>
<meta charset="utf-8">
</head>      
<body marginwidth="0" marginheight="0">
<div class="cs" onclick="RadioClick('id')">
   <input type="radio" id="" value="1" onclick="RadioClick('.cs')">
   <div id="ctl00_ContentPlaceHolder1_Row1" style="display:none">231123123</div>
   <input type="radio" id="" value="2" onclick="RadioClick('.cs')">
   <div id="ctl00_ContentPlaceHolder1_Row2" style="display:none">231123123</div>
</div>
<script>
function RadioClick(obj) {
    var radioList = document.querySelectorAll(obj + ' input');
    for (var i = 0; i < radioList.length; i++) {
        if (radioList[i] != null && radioList[i].type == "radio") {
            var objDeep = document.getElementById("ctl00_ContentPlaceHolder1_Row" + radioList[i].value);
            //  var objDeep2=document.getElementById("ctl00_ContentPlaceHolder2_Row"+radioList[i].value);

            if (objDeep != null) {
                if (radioList[i].checked)
                    objDeep.style["display"] = "block";
                else
                    objDeep.style["display"] = "none";
            }
        }
    }
}
</script>
</body>
</html>