Как ссылаться на элементы #id в jquery, которые являются массивами [duplicate]

0

У меня есть скрипт, который создает идентификатор, который выглядит как элементы массива следующим образом:

<select name="serviceTypeID[1]" id="serviceTypeID[1]" ...
<select name="serviceTypeID[2]" id="serviceTypeID[2]" ... 
<select name="serviceTypeID[3]" id="serviceTypeID[3]" ...
<select name="serviceTypeID[4]" id="serviceTypeID[4]" ...
and so on up to 10 currently...

Как я могу кодировать сценарий jquery для их ссылки? Этот код не работает.

$('#serviceTypeID[1],#serviceTypeID[2],#serviceTypeID[3],#serviceTypeID[4]').change(function() {

  var first = parseInt( $('#firstService[1]').val() );
  var second = parseInt( $('#secondService[1]').val() );
  var third = parseInt( $('#thirdService[1]').val() );
  if (isNaN(first)) first = 0;
  if (isNaN(second)) second = 0;
  if (isNaN(third)) third = 0;

  $('#serviceTotal[1]').val( ( first + second + third + ' Total') );

  first = parseInt( $('#firstService[2]').val() );
  second = parseInt( $('#secondService[2]').val() );
  third = parseInt( $('#thirdService[2]').val() );
  if (isNaN(first)) first = 0;
  if (isNaN(second)) second = 0;
  if (isNaN(third)) third = 0;

  $('#serviceTotal[2]').val( ( first + second + third + ' Total') );

  first = parseInt( $('#firstService[3]').val() );
  second = parseInt( $('#secondService[3]').val() );
  third = parseInt( $('#thirdService[3]').val() );
  if (isNaN(first)) first = 0;
  if (isNaN(second)) second = 0;
  if (isNaN(third)) third = 0;

  $('#serviceTotal[3]').val( ( first + second + third + ' Total') );

  first = parseInt( $('#firstService[4]').val() );
  second = parseInt( $('#secondService[4]').val() );
  third = parseInt( $('#thirdService[4]').val() );
  if (isNaN(first)) first = 0;
  if (isNaN(second)) second = 0;
  if (isNaN(third)) third = 0;

  $('#serviceTotal[4]').val( ( first + second + third + ' Total') );

//and so on up to 10 currently

});

Ничто не возвращается из сценария jquery, поэтому я чувствую, что неправильно ссылаюсь на него в моем jquery. благодаря

  • 0
    Вы можете быть правы @cale_b - спасибо
  • 2
    $('#serviceTypeID\\[1\\]')
Показать ещё 2 комментария
Теги:
arrays

2 ответа

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

Вы должны просто удалить квадратные скобки из идентификатора, которые они сверхъестественны...

<select name="serviceTypeID[1]" id="serviceTypeID1" ...
<select name="serviceTypeID[2]" id="serviceTypeID2" ... 
<select name="serviceTypeID[3]" id="serviceTypeID3" ...
<select name="serviceTypeID[4]" id="serviceTypeID4" ...
  • 0
    К сожалению, я не могу @ Уилмер. Я использую плагин, который жестко контролирует вывод и отображает идентификаторы таким образом. Я не могу копаться в источнике, не исключив будущую возможность сохранить текущее с плагином O / S
0

Я бы обернул div или другой элемент вокруг всех этих и использовал делегирование событий http://api.jquery.com/on/

Например.

скажем, вы завернули div вокруг них и дали этому div идентификатор "foo". $ ('# foo'). on ('change', 'select'), function() {console.log(this); }); });

  • 0
    К сожалению, я не могу @AlistairLaing. Я использую плагин, который жестко контролирует вывод и отображает идентификаторы таким образом. Я не могу копаться в источнике, не исключив будущую возможность сохранить текущее с плагином O / S

Ещё вопросы

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