急,请问javascript对象的小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/13 04:45:34
急,请问javascript对象的小问题?
<input type=button value=确定 onclick="alert(this=='INPUT')">
<input type=button value=确定 onclick="alert(this=='BUTTON')">
为什么返回的都是false,是不是因为一个是对象,一个是字符串,不能比?

this是对象 ,如果是alert(this)的话,显示的是object ,那么有什么办法把这个object给翻译出来,让它显示具体是什么对象?

有没什么办法?

<body onclick="alert(this=='BODY')">

这个也是对象不能和字符串相比,是这样的吗?

如果是alert(this)的话,显示的是object 那么有什么办法把这个object给翻译出来,让它显示具体是什么对象?

有没什么办法?

的确,是因为对象和字符串不能比的

要获得标签名,应该用this.tagName
要获得标签的某个属性(比如type属性),则应该用this.type

因此,应该
<input type=button value=确定 onclick="alert(this.tagName.toUpperCase()=='INPUT')">
<input type=button value=确定 onclick="alert(this.tagName.toUpperCase()=='BUTTON')">

使用toUpperCase,不管小写还是大写,还是大小写混合,都将返回大写

在javascript中是区分大小写的,字符串"input"和"INPUT"是不同的,"input"=="INPUT" 将返回false.

<input type=button value=确定 onclick="alert(this.tagName.toUpperCase()=='INPUT')">
<input type=button value=确定 onclick="alert(this.tagName.toUpperCase()=='BUTTON')">

第一个 true 得到的是 input
第2个是 false