gpt4 book ai didi

JavaScript checkAll 函数

转载 作者:行者123 更新时间:2023-12-02 20:12:09 25 4
gpt4 key购买 nike

运行第一个代码片段,通过单击表头的复选框,<td> 中的复选框数量将显示在警报框中。但是,运行第二个代码片段时,<td> 中的复选框数量将不会显示在警报框中。

注意:第一个片段获取三个表行,第二个片段获取两个表行。

谁能帮帮我吗?提前致谢!

-------------第一个片段--------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function CheckAll(formName,eleName,controlID)
{
var count = document.forms[formName].elements[eleName].length;
alert(count);
}
</script>
</head>

<body>
<form name="report" method="post" action="#">

<table border="1">
<tr>
<th width="5%">
<input type='checkbox' id="selectController" onClick="CheckAll('report','list[]',this.id)"/>
</th>
<th width="30%">
Name
</th>
<th width="30%">
Number
</th>
<th width="35%">
</th>
</tr>
<tr id='row0' class='odd' >
<td >
<input name='list[]' type='checkbox' value="1" id='checkbox-1' onClick='ClickCheckbox(this.id)' />
</td>
<td>
SensorA
</td>
<td>
1234567
</td>
<td>
[ <a href="#" class="basketlink">Add</a> ]
</td>
</tr>
<tr id='row1' class='even' >
<td >
<input name='list[]' type='checkbox' value="2" id='checkbox-2' onClick='ClickCheckbox(this.id)' />
</td>
<td>
SensorA
</td>
<td>
1234567
</td>
<td>
[ <a href="#" class="basketlink">Add</a> ]
</td>
</tr>

</table>
</form>
</body>
</html>

------------第二个片段--------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function CheckAll(formName,eleName,controlID)
{
var count = document.forms[formName].elements[eleName].length;
alert(count);
}
</script>
</head>

<body>
<form name="report" method="post" action="#">

<table border="1">
<tr>
<th width="5%">
<input type='checkbox' id="selectController" onClick="CheckAll('report','list[]',this.id)"/>
</th>
<th width="30%">
Name
</th>
<th width="30%">
Number
</th>
<th width="35%">
</th>
</tr>
<tr id='row0' class='odd' >
<td >
<input name='list[]' type='checkbox' value="1" id='checkbox-1' onClick='ClickCheckbox(this.id)' />
</td>
<td>
SensorA
</td>
<td>
1234567
</td>
<td>
[ <a href="#" class="basketlink">Add</a> ]
</td>
</tr>
</table>
</form>
</body>
</html>

最佳答案

你的问题是“.length”。 length 是数组的属性,而不是每个 javascript 对象的属性。在第二个片段中,由于您只有 1 个复选框,因此 document.forms[formName].elements[eleName] 返回的内容是一个对象而不是数组;该对象没有长度属性。因此你应该这样做:

    var count;
if(document.forms[formName].elements[eleName].length)
count = document.forms[formName].elements[eleName].length;
else
count = 1 //only if you are sure that you will always have 1 checkbox rendered, otherwise use some other logic to say 0 or 1.

关于JavaScript checkAll 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828399/

25 4 0
文章推荐: javascript - 我正在尝试通过 javascript hide() 隐藏
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com