#javascript #jquery
#javascript #jquery
Вопрос:
Я создаю веб-страницу и хочу выдавать предупреждение всякий раз, когда я нажимал на строку сгенерированной таблицы, которая генерируется приведенным ниже кодом. Для того, чтобы сделать это, я использую функцию setAlert (сообщение). Моя проблема в том, что это работает только тогда, когда параметр, установленный для функции, является целым числом. это не работает, когда это строка. Помогите мне решить эту проблему.
Спасибо.
function getItemList(){
$('#tableItem').empty();
$.ajax({
url: 'ItemServlet',
data:{version:2},
type: 'post',
dataType: 'json',
success: function (data) {
$('#tableItem').append('<table class="table table-striped table-hover" id="table1">n
<thead><tr><th class="table-text-align-centre" style="width:10%">Item Code</th>n
<th class="table-text-align-centre" style="width:20%">Name</th>n
<th class="table-text-align-centre" style="width:50%">Description</th>n
<th class="table-text-align-centre" style="width:10%">Stock Count</th>n
<th class="table-text-align-centre" style="width:10%">Active</th></tr></thead><tbody class="table-hover"></tbody></table>');
var length = data.length;
for (i = 0; i < length; i ) {
var post = data[i];
$('#table1').append('<tr onClick="setAlert(' post['itm_code'] ')"><td>' post['it_name'] '</td>n
<td class="table-text-align-centre">' post['itm_name'] '</td>n
<td class="table-text-align-centre">' post['itm_description'] '</td> n
<td class="table-text-align-centre">' post['itm_stockcount'] '</td> n
<td class="table-text-align-centre">' post['active'] '</td> n
</tr>');
}
}
});
}
function setAlert(message) {
var id = message "";
alert(id);
}
Комментарии:
1. что вы имеете в виду, говоря, что это не работает? что именно происходит? вызывается ли метод? какая-либо ошибка в консоли?
2. теперь операция за несколько дней похожа. можете ли вы исправить этот код, не сообщая об ошибке. заранее спасибо за помощь.
Ответ №1:
Проблема здесь в том, что вы передаете свои параметры в setAlert
функцию без определения кавычек. Теперь, поскольку вы используете « для определения вашего onClick
и вашего использования « для формулировки вашего html, вам нужно использовать апостроф, экранированный ‘ для передачи параметра.
Итак, в настоящее время, если post['itm_code']
равно 1, он сгенерирует следующий HTML-код с допустимым javascript:
<tr onClick="setAlert(1)"><td>
Однако, если post['itm_code']
это строка «моя строка», она отобразит следующий html с недопустимым javascript:
<tr onClick="setAlert(my string)"><td>
Итак, следующая строка:
<tr onClick="setAlert(' post['itm_code'] ')"><td>
следует изменить на:
<tr onClick="setAlert('' post['itm_code'] '')"><td>