Привет, у меня проблема с Rails
и Javascript
. Вот моя таблица.
<table>
<thead>
<tr>
<th>No</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr id="adminrow">
<td>
1
</td>
<td>
<a href="#" id="select_name">John</a>
</td>
</tr>
<tr id="adminrow">
<td>
2
</td>
<td>
<a href="#" id="select_name">Alex</a>
</td>
</tr>
<tr id="adminrow">
<td>
3
</td>
<td>
<a href="#" id="select_name">Paul</a>
</td>
</tr>
</tbody>
</table>
А мой JS
$('#select_name').click(function(event){
var username = $("#select_name").text();
console.log(username);
});
В моей таблице много имен, но JS
напечатал имя в консоли. Как я могу вывести каждое имя в таблице на консоль?
1 ответ
Вы создаете в каждом цикле N ссылок (по количеству пользователей) с одним и тем же идентификатором select_name
. Ваш javascript не понимает, какой из них выбрать. Попробуйте добавить идентификатор пользователя в свой html select_name
идентификатор и соответствующим образом скорректируйте свой javascript. То же самое и с другим вашим идентификатором adminrow
.
ИЛИ просто измените свой select_name
на класс, а не идентификатор:
....
%a{:href=>"#", :class=>"select_name"}=u.firstname
....
$('.select_name').click(function(event){ ....
Хорошо, прилагаю для вас полный код. Для меня это работает нормально. Например. печатает только имя после нажатия на соответствующую ссылку:
<table>
<thead>
<tr>
<th>No</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr class="adminrow">
<td>
1
</td>
<td>
<a href="#" class="select_name">John</a>
</td>
</tr>
<tr class="adminrow">
<td>
2
</td>
<td>
<a href="#" class="select_name">Alex</a>
</td>
</tr>
<tr class="adminrow">
<td>
3
</td>
<td>
<a href="#" class="select_name">Paul</a>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$('.select_name').click(function(event){
var username = $(this).text();
console.log(username);
});
</script>
var username = $(this).text()
. Я думал, что вы уже заметили эту ошибку.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
var username = $(this).text()
, надеюсь, это сработает