Переменная "на лету"
Приветствую,
сразу к делу: выбираю имена всех чекбоксов, которые отмечены:
$("#tut-ishu").find($("input[type=checkbox]:checked").each(function()
{
var name = $(this).attr("name"); // все имена
alert(name);
}));
- это всё хорошо, и выводит, то что надо к примеру отмечено два чекбокса и получается два алерта с именами (к примеру chek1 и chek2). а я хочу выводилось содержание ранее уже объявленных переменных как раз таки с именами chek1 и chek2.
var chek1 = 'Первая';
var chek2 = 'Вторая';
$("#tut-ishu").find($("input[type=checkbox]:checked").each(function()
{
var name = $(this).attr("name"); // все имена
alert(name);
}));
если вместо name в alert ставлю имя переменной, то выводит что надо, а если в цикле - не хочет (( выводит имя чекбокса... благодарю за советы |
alert(window[name]), если переменные объявлены в глобальной области видимости. |
попробовал... undefined :( в глобальной видимости, если скажем сделать так:
var chek1 = 'Первая';
var chek2 = 'Вторая';
$("#tut-ishu").find($("input[type=checkbox]:checked").each(function()
{
var name = $(this).attr("name"); // все имена
alert(window[name]+'/'+chek2);
}));
результатом будет undefined/Вторая |
перед перебором чекбоксов создавай массив:
var arrCb = $([]); в цикле перебора вместо var name... добавляй все в массив:
arrCb.add($(this).attr("name"));
на выходе: arrCb — массив со всеми именами. |
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<div id="tut-ishu"> <input name="chek1" type="checkbox" /> <input name="chek2" type="checkbox" />
<input type="button" id="btn" value="ClickMe!" />
</div>
<script>
var chek1 = 'Первая';
var chek2 = 'Вторая';
$('#btn').click(function () {
$("#tut-ishu").find($("input[type=checkbox]:checked").each(function () {
var name = $(this).attr("name"); // все имена
alert(window[name]);
}));
});</script>
P.S. find Вы используете неправильно. |
| Часовой пояс GMT +3, время: 19:50. |