Переменная "на лету"
Приветствую,
сразу к делу: выбираю имена всех чекбоксов, которые отмечены: $("#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, время: 04:29. |