2012-07-19 84 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