代码如下:
<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";
}
}
}
}
}
问题:
把第一句换成以下代码
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)打印出来看看有没有值
你把这句话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>