2015-06-05 3 views
0

Я хочу сохранить установленное значение флажка и его имя в двухмерном массиве, здесь - код html.Сохраните установленное значение флажка и его имя в двухмерном массиве

<h3>Select your favorite sports:</h3> 
<label> 
    <input type="checkbox" value="football" name="football"> Football</label> 
<label> 
    <input type="checkbox" value="baseball" name="baseball"> Baseball</label> 

И я могу только показать проверенные значения checbox, вот JQuery код

$(document).ready(function() { 
    $("button").click(function() { 
     var favorite = []; 
     $.each($("input:checked"), function() { 
      favorite.push($(this).val()); 
     }); 
     alert("My favourite sports are: " + favorite); 
    }); 
}); 

Мой вопрос, как сохранить оба значения, и это имя любимого массива?

ответ

2

Вы можете использовать Array of objects для этого:

favorite.push({ 
    name: $(this).attr('name'), 
    value:$(this).val() 
}); 

See it in action

Выход:

[{ 
    "name": "football", 
    "value": "football" 
}, { 
    "name": "baseball", 
    "value": "baseball" 
}] 

Если вы хотите отобразить значения:

$.each(favorite, function(index, obj){ 
    console.log("Name= "+ obj.name+" Value="+ obj.value); 
}) 
+0

Он возвращает объект, как я могу присвоить имя и значение переменной? –

+0

Он не возвращает 'Object', он возвращает' Array' объектов. Вы можете легко присвоить ему значение. – Manwal

+0

Можете ли вы, пожалуйста, уточнить, как я могу назначить переменную, я понятия не имею об этом, спасибо! –

1

использование map() .Translate все элементы массива или объекта

var favorite= $("input:checked").map(function() { 
    var obj = {}; 
    obj[$(this).attr('name')] = this.value; 
    return obj; 

}).get(); 

console.log(favorite) 

DEMO

+0

Спасибо @Bala –

+0

@SadamAfridi Добро пожаловать :) – Balachandran

1

Используйте массив объектов

$(document).ready(function() { 
    $("button").click(function() { 
     var favorite = []; 
     $.each($("input:checked"), function() { 

      // Add object in array 
      favorite.push({ 
       name: $(this).attr('name'), 
       value: $(this).val() 
      }); 
     }); 
     console.log("My favourite sports are: "); 
     console.log(favorite); 
    }); 
}); 
+0

Как назначить переменной эти имя и значение? –

+0

'window [$ (this) .attr ('name')] = $ (this) .val()' – Tushar

Смежные вопросы