Объединить переменные JQuery

0

Мне нужно добавить число до конца каждой переменной javascript и элемента JQuery.

Вот мой код:

$("#insert1").click(function(){
    var collegeId1=$("#collegeId1").val();
     $.post('insert.php', {collegeId: collegeId1});
    return false;
});

$("#insert2").click(function(){
    var collegeId2=$("#collegeId2").val();
    $.post('insert.php', {collegeId: collegeId2});
    return false;
});

... и так далее. Мне нужно продолжить добавление чисел в конец каждого элемента и переменной (например, collegeId [число] и ("#insert [число]"). Я пробовал looping,.append, + и т.д., И ничего не работает.

Любая помощь будет принята с благодарностью!

  • 0
    Это невозможно в javascript, как php $$ var; U должен использовать массив вместо имени переменной
  • 1
    Пожалуйста, разместите HTML также.
Показать ещё 1 комментарий
Теги:
variables

2 ответа

6
Лучший ответ

Правильный способ сделать это - использовать "данные" -fields. У вас есть такие кнопки:

<button data-id="1" class="insert">

И только одна функция для всего этого дерьма:

$('.insert').click(function(){
    var id = $(this).data('id');
    var collegeId = $('#collegeId' + id).val();
    $.post('insert.php', {collegeId: collegeId});
    return false;
});

Также вы можете сохранить collegeId прямо в теге-кнопке (не записывайте "data-collegeId", поскольку данные -fields не поддерживают верхний регистр):

<button data-collegeid="1" class="insert">

то вы получите его в 1 строке:

var collegeId = $(this).data('collegeid');
0

Если вы должны работать с разметкой, которую вы уже получили, попробуйте это...

$('[id^="insert"]').filter(function() {
    return /insert\d+$/.test(this.id); // filter to make sure the id matches /insert\d+/
}).on('click', function(e) {
    e.preventDefault();
    var i = /\d+$/.exec(this.id)[0], // fetch index from id
        collegeId = $('#collegeId' + i).val();
    $.post('insert.php', {collegeId: collegeId});
})';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню