簡體   English   中英

jquery/javascript: 數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM