function setAppTitle()
{
if (document.getElementsByName("readonly"))
{
if (document.getElementsByName("readonly")[0].value == "true")
{
parent.document.title = "WebXT - "+ "[Read-Only]";
}
else
{
parent.document.title = "WebXT";
}
}
else
{
parent.document.title = "WebXT";
}
}
结果执行时if (document.getElementsByName("readonly"))根本没起作用,直接进入了其下的代码块执行,但如果改成if (document.getElementsByName("readonly")[0])就可以了。如果对象不存在,那么document.getElementsByName("readonly")这个数组应该是不存在的,又怎么能引用数组的元素呢?
6 个解决方案
#1
没有成员的元素组
#2
document.getElementsByName("readonly").length==0
#3
如果对象是同名的话,那就要按下标访问了。
#4
运行下面的语句,看看有什么异同:
<BODY>
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello'));">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello')[0]);">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello').length);">
</BODY>
</HTML>
<BODY>
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello'));">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello')[0]);">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello').length);">
</BODY>
</HTML>
#5
是不是尽管要找的对象不存在,getElementsByName方法仍然会返回一个什么都不包含的数组对象?
#6
应该是你的
document.getElementsByName("readonly").length==1
只有一个这样名叫readonly的控件
document.getElementsByName("readonly").length==1
只有一个这样名叫readonly的控件
#1
没有成员的元素组
#2
document.getElementsByName("readonly").length==0
#3
如果对象是同名的话,那就要按下标访问了。
#4
运行下面的语句,看看有什么异同:
<BODY>
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello'));">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello')[0]);">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello').length);">
</BODY>
</HTML>
<BODY>
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello'));">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello')[0]);">
<input type="button" value="getIt" onclick="alert(document.getElementsByName('hello').length);">
</BODY>
</HTML>
#5
是不是尽管要找的对象不存在,getElementsByName方法仍然会返回一个什么都不包含的数组对象?
#6
应该是你的
document.getElementsByName("readonly").length==1
只有一个这样名叫readonly的控件
document.getElementsByName("readonly").length==1
只有一个这样名叫readonly的控件