Я ранее размещал этот вопрос как jquery / javascript: array - jquery / javascript: array . Но поскольку я полный новичок, я неправильно сформулировал вопрос и тоже не понял ответов ....: (
После того, как я не смог реализовать данные решения, я еще немного огляделся и обнаружил, что мне нужно сравнить 6 массивов возможных вариантов и пересечь их, чтобы в итоге отобразить только перекрывающиеся значения.
Итак, это, надеюсь, более четкая формулировка:
У меня 6 вопросов / 6 групп переключателей для ответов. Каждый ответ имеет несколько значений (они могут варьироваться от 1 до 38 элементов, которые будут отображаться в последнем «совете»). Я собираю значения проверенных радиомодулей в массивы. Я получаю 6 массивов.
Как мне пересечь 6 массивов, чтобы получить один окончательный массив, содержащий только пересекающиеся значения из всех 6 вариантов? Как мне превратить элементы этого последнего массива в селекторы?
Кто-нибудь может мне помочь? Спасибо!
Мой сценарий теперь выглядит так:
(function($){
$.fn.checkboxval = function(){
var outArr = [];
this.filter(':checked').each(function(){
outArr.push(this.getAttribute("value"));
});
return outArr;
};
})
(jQuery);
$(function(){
$('#link').click(function(){
var valArr1 = $('#vraag1 input:radio:checked').checkboxval();
var valArr2 = $('#vraag2 input:radio:checked').checkboxval();
var valArr3 = $('#vraag3 input:radio:checked').checkboxval();
var valArr4 = $('#vraag4 input:radio:checked').checkboxval();
var valArr5 = $('#vraag5 input:radio:checked').checkboxval();
var valArr6 = $('#vraag6 input:radio:checked').checkboxval();
// var newArray = $.merge(valArr1, valArr2, valArr3, valArr4, valArr5, valArr6); <- test to see if I can merge them
// $('#output').text(newArray.join(',')); <- test to see if I can join them
//$("#output").html($("#output").html().replace(/,/gi, ',#diet')); <- test to see if I can append text so it looks like the selectors of divs I need to display later
// return false;
});
});
моя форма / входные данные выглядят так: