简单的问题,关于dom

lifengxiaorong 2008-04-22 10:37:33
<select name="lesson" id="lesson">
<option value="yuwen">语文</option>
<option value="shuxue">数学</option>
</select>
这段代码用 document.getElementById("lesson").childNodes.length;
结果是4 但是用document.表单名.lesson.options.length是 2这是什么的原因

谢谢。。。。
...全文
89 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifengxiaorong 2008-04-24
  • 打赏
  • 举报
回复
public class AutoUpdateServlet extends HttpServlet {
private int count=0;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
PrintWriter out = response.getWriter();
out.println("<response>");
out.println("<message>"+result+"</message>");
out.println("</response>");
}
}
如果result是整数的话用dom 的 document.getElementsByTagName("message").length;得到的值是1 是对的 但是result的类型是 String 的话
用dom模型得到document.getElementsByTagName("message").length 却是0 这是为什么?
lifengxiaorong 2008-04-23
  • 打赏
  • 举报
回复
Thank you! 我试试 不过请问一下你前面的两端代码有什么的不一样的吗?
KKK2007 2008-04-23
  • 打赏
  • 举报
回复
1、document.getElementById("lesson").childNodes.length;
结果是4
childNodes包括一个文本节点和两个option和最后的</select>,所以是4
这是符合w3c标准的
2、document.表单名.lesson.options.length是 2
这个用法是微软自己的用法,options只包括两个option ,所以是2
只有微软的ie浏览器里才支持这种方法
lifengxiaorong 2008-04-23
  • 打赏
  • 举报
回复
非常的感谢 懂了 哥们有 关于天气预报的 wsdl不
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
子节点包括空格和换行,不仅仅是option这两个节点。

试试下面几段代码的区别:

<!--代码1-->
<select name="lesson" id="lesson"> <option value="yuwen">语文 </option> <option value="shuxue">数学 </option> </select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>


<!--代码2-->
<select name="lesson" id="lesson"> <option value="yuwen">语文 </option> <option value="shuxue">数学 </option> </select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>


<!--代码3-->
<select name="lesson" id="lesson">
<option value="yuwen">语文 </option> <option value="shuxue">数学 </option> </select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
子节点包括空格和换行,不仅仅是option这两个节点。

试试下面几段代码的区别:

<!--代码1-->
<select name="lesson" id="lesson"><option value="yuwen">语文 </option><option value="shuxue">数学 </option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>

<!--代码2-->
<select name="lesson" id="lesson"><option value="yuwen">语文</option> <option value="shuxue">数学</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>

<!--代码3-->
<select name="lesson" id="lesson">
<option value="yuwen">语文</option><option value="shuxue">数学</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>
lostjoker 2008-04-23
  • 打赏
  • 举报
回复
<div id="CSDNPHL">
<table class="CSDN-PHF" cellspacing="1" cellpadding="0" border="0">
</table>
</div>

比如这个
- childNodes ["\n ", table.CSDN-PHF, "\n"]
+ 0 "\n "
+ 1 table.CSDN-PHF
+ 2 "\n"
length 3
lostjoker 2008-04-23
  • 打赏
  • 举报
回复
childnodes里面还有空文本节点
lostjoker 2008-04-23
  • 打赏
  • 举报
回复
options这个属性之后再length 获得的是select标签中option的数量吧 里头不就2个么?
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
6楼的第3段代码错了,改成:

<!--代码3-->
<select name="lesson" id="lesson"><option value="yuwen">语文</option>
<option value="shuxue">数学</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
这回对了
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
再试一次


<!--代码1-->
<select name="lesson" id="lesson"><option value="yuwen">语文</option><option value="shuxue">数学</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>


<!--代码2-->
<select name="lesson" id="lesson"><option value="yuwen">语文</option> <option value="shuxue">数学</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>


<!--代码1-->
<select name="lesson" id="lesson"><option value="yuwen">语文</option><option value="shuxue">数学
</option></select>
<script language="javascript">
alert(document.getElementById("lesson").childNodes.length);
</script>
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
呃,好像csdn会自动加空格。。
codeartisan 2008-04-23
  • 打赏
  • 举报
回复
第2段代码在两个option标签之间多了个空格

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧