2009-07-01 85 views
0

只是試圖在這段代碼中測試相等性,但得到一個失敗。Javascript中的平等測試

<input type="text" name="dave_blah"/> 
<input type="text" name="dave_bleh"/> 

然後,我可以訪問每個輸入的名稱值,並將它們分配給兩個變量name1和name2。然後我提取名稱的第一部分,用「_」分隔。

var oldName = name1.name.split('_',1);//dave 
var thisName= name2.name.split('_',1);//dave 
alert(oldName); 
alert(thisName); 
if(oldName !== thisName){//if "dave" is not equal to "dave" 
alert("name difference = "+ oldName + " " + thisName); 
} 

但是,運行此代碼時,無論(我試過!=也是)警告消息。原則上,警報不應執行。晚上很晚,所以這可能很明顯,但是有人能指出這個noob在正確的方向嗎?如果我從if語句中刪除not操作符 - 該函數按需要工作。

回答

4

thisNameoldName都是陣列,做這樣的事情:

var oldName = name1.name.split('_',1)[0]; //dave 
var thisName= name2.name.split('_',1)[0]; //dave 

而且我認爲它應該工作。

+0

是的,String.prototype.split返回一個數組。 – seanmonstar 2009-07-02 04:01:33

2

好的。我懷疑這個問題。比較結果顯示,測試中的參與者都是對象,而不是內容的字符串值。所以,我通過將結果轉換爲字符串來解決它。