我想知道是否有其他人在使用javascript的浏览器之间遇到过这种'故障'。
我的javascript是以下
var theForm = document.getElementById( 'theForm' );
theForm.firstname = theForm.firstName.value.trim();
theForm.lastname = theForm.lastName.value.trim();
theForm.firstName.style.color = "red";
这似乎不适用于Opera 11,但它适用于Firefox 4.
我只是认为这两个javascript引擎的处理方式不同。
当我在两者中调试javascript时,我会得到不同的结果。
在Opera中,theForm.firstName在赋值后变为常规旧字符串,但在Firefox中它仍然是表单元素。
还有其他人经历过这个吗?
答案 0 :(得分:2)
<form id="bar">
<input name="foo">
</form>
var form = document.getElementById("bar");
form.foo; // is a DOM element
form.foo = form.foo.value.trim(); // trying to set a dom element to a string??
form.foo; // What am I?
如果你影子,浏览器应该如何知道form [“someName”]是否是表单中的属性或DOM元素。
Garbage in,Garbage out。
答案 1 :(得分:1)
像Raynos所说:你正在将一个DOM元素设置为一个字符串。将您的代码更改为
var theForm = document.getElementById( 'theForm' );
theForm.firstname.value = theForm.firstName.value.trim();
theForm.lastname.value = theForm.lastName.value.trim();
theForm.firstName.style.color = "red";