2012-07-19 82 views
0

我試圖比較多選擇值的價值和交換他們時,他們是相同的,因爲我在我的代碼都試過了,檢查值在此代碼,我不給正確的結果

function OnChangeSelection(selection,selectid) 
{ 
    var count=1; 
    for(var j=5;j<=14;j++) 
    { 
     var c_id= "Numbering"+count; 
     if (document.getElementById(selectid).value == document.getElementById(c_id).value) 
     { 
      alert(c_id); 
     } 
     count++ 
    } 
} 

獲取perametera「的選擇是在選擇上更改的值」和「selectid」是選擇標記的id「所以我想在循環中進行比較,因爲我有10個選擇並通過它的id匹配,我可以通過conacating Numbering + count並且當它與另一個選擇值相匹配時,它會打印出選擇的ID,但問題是它正在打印另一個選擇的ID以及我正在對其進行比較的選擇的ID

回答

1

我認爲你在某些時候將你的元素與自己進行比較。把一些條件跳過自我比較:

function OnChangeSelection(selection,selectid) 
{ 
    var count=1; 
    for(var j=5;j<=14;j++) 
    { 
     var c_id= "Numbering"+count; 
     if (c_id == selectid) {count++;continue;} 
     if (document.getElementById(selectid).value == document.getElementById(c_id).value) 
     { 
      alert(c_id); 
     } 
     count++ 
    } 
} 
+0

@ Biaib我怎麼interchang那裏的價值呢?當這個條件變爲真時,它會交換值 – 2012-07-19 07:24:54

+0

@SyedRaza對不起,但我不明白你的意思是'交流'?你爲什麼想要交換相同的值? PS:也許一些HTML代碼,一些之前/之後的狀態會有所幫助。 – BiAiB 2012-07-19 08:19:22

+0

是我想互換他們喜歡「如果(的document.getElementById(SELECTID)。價值==的document.getElementById(C_ID)。價值) { 臨時=的document.getElementById(C_ID)。價值; 的document.getElementById(C_ID) .value = document.getElementById(selectid).value; //alert(document.getElementById(selectid).value); }「 – 2012-07-19 08:25:34

-2

您可以獲得元素選擇標識的ID,因爲在您對所有選擇進行迭代時,您會將其與自身進行比較。錯誤地打印的另一個選擇的值是多少?嘗試將==更改爲===,從而避免隱式轉換。

+0

,爲了您的信息,''==不賦值運算符是隱含在做JS的轉換,之間'=='和''===是唯一的區別後者也檢查類型。 – 2012-07-19 07:06:10

+0

正是我所說的。 ==轉換爲常用類型,然後進行比較,而===立即比較,並在類型不匹配時跳出 – allesmi 2012-07-19 07:08:05

+0

不是一個好的解決方案 – akk 2012-07-19 07:12:01