jquery / javascript:数组

我是Javascript / jQuery的初学者,我希望有人能帮我解决以下问题:

我有一个简单的表格(7个问题; 3个单选按钮/每个问题的答案 – 除了问题5,有8个可能的选择)并根据选定的答案,当用户点击’view-advice’时我想显示相关的建议(组合)表格下面的38个可能的建议。 我已将“a”,“b”,“c”,……值给了单选按钮,我将它们收集在一个数组中。 脚本警告数组的部分可以正常工作。 根据数组中的值,我无法弄清楚显示建议的部分。

我很感激你的帮助! 谢谢!

这是代码:

var laArray = new Array(); $('.button-show-advice').click(function(){ $(":radio:checked").each(function(i){ laArray[i] = $(this).val(); if (laArray == ["a","d","g","j","m","u"]) { $("#advice-container, #advice1, #advice2").show(); // something is wrong here :( }; }) alert(laArray) // testing to see if it works }) 

我认为更好的方法是使用jQuery inArray函数检查每个值是否在数组中,而不是测试相等性。

当然,这只是代码的开始。 你可以编写一个函数来支持它,就像这样。

 function radioSelected(val) { return ($.inArray(val, laArray) != -1); } 

并使其适应您现有的脚本。

您不能以这种方式比较数组,您应该比较2个数组的每个元素

 function compare_array(array1,array2) { var i; for(i=0;i=array1.length;i++) { if(array1[i]==array2[i]) { return false; } } return true; } 

或以可比较的forms序列化数组(例如以逗号分隔的字符串)

 function compare_array(array1,array2) { return array1.join(",")==array2.join(","); } 

很高兴看到HTML代码。 但我想你想做这样的事情:


 var laArray = []; var compareValues = function(arr1, arr2) { $(arr1).each(function(index, el) { if(el !== arr2[index]) { return false; } }); return true; }; $('.button-show-advice').click(function(){ $(":radio:checked").each(function(i){ laArray.push($(this).val()); }); if(compareValues(laArray,["a","d","g","j","m","u"])) { $("#advice-container, #advice1, #advice2").show(); } }); 

编辑:更新代码,忘了});