Заставьте Jquery применять вычисления к одному <div>одновременно, не влияя на других на странице - PullRequest
0 голосов
/ 22 февраля 2012

Я хочу посмотреть на общий размер набора столбцов в таблице, а затем установить их ширину на среднее значение их ширины. Jquery ниже прекрасно работает, если на странице только одна таблица. Однако в некоторых случаях на странице будет более одной таблицы. Их ширина должна быть рассчитана индивидуально.

$('.tableQuestion').each(function(){
  var answerWidth = 0;
  $('table tr:first-child td.radio-answer').each(function(index, elem) {
    var $elem = $(elem);
    answerWidth += $elem.width();
  });
  changeWidth = answerWidth / <?php echo $numColumns; ?>;
  $('table td.radio-answer').width(changeWidth);
});

Есть несколько <div class="tableQuestion> каждый с одной таблицей внутри.

Прямо сейчас, каждый раз через цикл он пересчитывает ширину для всех таблиц на странице. Как я могу заставить его вычислять одну таблицу за раз?

1 Ответ

2 голосов
/ 22 февраля 2012

вам нужно применить его к текущему контексту.поэтому измените эту строку:

 $('table tr:first-child td.radio-answer').each(function(index, elem) {

на

$(this).find('tr:first-child td.radio-answer').each(function(index, elem) {

и

$('table td.radio-answer').width(changeWidth);

на

$(this).find('td.radio-answer').width(changeWidth);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...