1

我是 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

})

4

3 回答 3

0

与其测试是否相等,我认为更好的方法是使用jQueryinArray函数检查每个值是否在数组中。

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

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

并将其调整为您现有的脚本。

于 2010-10-19T14:55:29.833 回答
0

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

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(",");
}
于 2010-10-19T14:56:21.087 回答
0

很高兴看到 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();
   }  
});

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

于 2010-10-19T14:58:00.647 回答