[英]jquery/javascript: arrays
我是 Javascript/jQuery 的初学者,希望有人可以帮助我解决以下问题:
我有一个简单的表格(7 个问题;每个问题 3 个单选按钮/答案 - 除了第 5 个问题,有 8 个可能的选择)并根据所选答案,当用户点击“查看建议”时,我想显示相关建议(组合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);
}
并将其调整为您现有的脚本。
您不能以这种方式比较数组,您可能应该比较两个数组的每个元素
function compare_array(array1,array2) {
var i;
for(i=0;i=array1.length;i++) {
if(array1[i]==array2[i]) {
return false;
}
}
return true;
}
或以可比较的形式序列化数组(例如逗号分隔的字符串)
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();
}
});
编辑:更新了代码,忘记了 }); ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.