Мне кажется, это работает:
jQuery(function($) {
var ticks = [], vals = [];
$('#edit-submitted-physical-state, #edit-submitted-mental-state, #edit-submitted-feelingso-of-belonging, #edit-submitted-feelings-of-justice, #edit-submitted-feeings-of-integrity, #edit-submitted-weight-management, #edit-submitted-emotional-ease, #edit-submitted-feelings-of-stimulation, #edit-submitted-feelings-of-justice, #edit-submitted-feelings-of-relationsip')
.each(function(i, el) {
vals.push(Number(el.value));
ticks.push($('label[for="'+el.id+'"]').text().replace('Feelings of ', '').replace(': ', ''));
});
var plot1 = $.jqplot('chart1', [vals], {
seriesDefaults: {
renderer: $.jqplot.BarRenderer
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
}
}
});
});
Я перебираю все поля и помещаю значение каждого в массив vals
.Помните, jQuery .val()
возвращает только значение первого соответствующего элемента.Я также использую Number()
, чтобы убедиться, что это числа, а не строки.
Возможно, вы захотите сделать что-то еще с ticks
- я просто вводю числа.1011 * Я бы порекомендовал вам установить специальный класс для всех текстовых полей, которые вы хотите прочитать, а затем ссылаться на них с этим классом вместо использования идентификаторов.Тогда строка 3 выше будет выглядеть просто:
$('.special_class_here').each(function(i, el) {