Добавьте некоторые данные - ваш client.id, если ничего другого, к флажку в некотором роде. Это облегчит вам жизнь. Вы можете сделать это в несколько способов, но самый простой, как часть имени:
<input type="checkbox" name = "chkboxRoute_<%= client.id %>">
или
<input type="checkbox" name = "chkboxRoute[]" value="<%= client.id %>">
С HTML5 вы можете использовать отдельный «данных клиент-идентификатор» атрибута или что-то типа того.
Вы хотите получить доступ к данным из javascript или обратно в Rails? Если вы хотите, чтобы имя или что-то еще просто вставляло его в значение или другой атрибут флажка.
«" материал посторонний, особенно если вы хотите просто получить доступ к этому через javascript.
Редакция основана на комментарий ниже:
Я хотел бы изменить HTML, как, например:
<% @clients.each do |client| %>
<tr class="client">
<td class="client_<%= client.id %> name"><%= client.name %></td>
<td class="client_<%= client.id %>phone"><%= client.phone %></td>
<td class="client_<%= client.id %>address"><%= client.address %></td>
<td class="client_<%= client.id %>pay"><%= client.pay %></td>
<td class="client_<%= client.id %>latitude"><%= client.latitude %></td>
<td class="client_<%= client.id %>longitude"><%= client.longitude %></td>
<td><input class="route" type="checkbox" name = "chkboxRoute" value="client_<%= client.id %>"></td>
</tr>
<% end %>
Это делает ваш HTML немного более сложный, но Javascript затем упрощена. Опять же, код Криса прочен, поэтому я не буду копировать все, что он сделал.С HTML изменил константы выглядит вы можете непосредственно захватить значения, которые вы хотите:
$(".client input.route:checked").each(function(element) {
var client_class = $(element).val();
var client_name = $("." + client_class + " name").text();
var client_phone = $("." + client_class + " phone").text();
...
});
Я так же, как делать что-то подобное, потому что не полагается так много на структуре HTML.
Теперь, если вы действительно хотите пойти на золото, вот так, как я хотел бы сделать это:
<% @clients.each do |client| %>
<tr class="client">
<td><%= client.name %></td>
<td><%= client.phone %></td>
<td><%= client.address %></td>
<td><%= client.pay %></td>
<td><%= client.latitude %></td>
<td><%= client.longitude %></td>
<td><input class="route" type="checkbox" name = "chkboxRoute" value="<%= client.id %>"></td>
</tr>
<% end %>
<script type="text/javascript">
var clients = [];
<% @clients.each do |client| %>
clients[<%= client.id %>] = {
name: "<%= j(client.name) %>",
phone: "<%= j(client.phone) %>",
....
};
<% end %>
</script>
Затем, получая значения это просто вопрос об этом:
$(".client input.route:checked").each(function() {
var client_id = parseInt($(this).val());
var client_name = clients[client_id].name;
var client_phone = clients[client_id].phone;
...
});
Вы может даже использовать json-шаблон, чтобы собрать массив, если хотите. Во всяком случае, это должно дать вам много возможностей пережевывать.
У вас нет ваших '' и '<% end %>' назад? У вас есть jQuery? –