Моя функция JavaScript вызывается несколькими CGI-сценариями, и поэтому я хотел бы передать атрибут HTML-идентификатора сценария в качестве аргумента моей функции.Затем в теле функции я хотел бы использовать параметр, содержащий этот аргумент, в ярлыке jQuery.Однако мой параметр продолжает интерпретироваться как строковый литерал, когда я использую синтаксис jQuery.
Написание длинного JavaScript-кода для использования параметра работает, но поскольку я использую ярлык jQuery везде, мне бы хотелосьиспользовать тот же синтаксис для этого случая, а также.Каждая страница может иметь несколько таблиц, поэтому выбор элемента таблицы не будет работать.Я не могу найти документацию для того, что я пытаюсь сделать.В Perl это будет похоже на использование $ {имя_параметра} вместо $ имя_параметра.
deleteItem.cgi (Perl):
my $rows;
my $counter = 0;
for (@array) {
$rows .= "
<tr id='del$counter' class='bg-dark' onclick='setRowBackground(\'deleteItems\', $counter)'>
<td>$_</td>
</tr>
";
$counter++;
}
<head>
<script type="text/javascript" src="setBackground.js"></script>
</head>
<body>
<table id="deleteItems" class="bg-dark">
$rows
</table>
</body>
setBackground.js:
$(function() {
// this uses the id name and is what I am trying to avoid so that
setBackground.js can be used by multiple CGI scripts //
$('#deleteItems').DataTable();
});
function setRowBackground(tableID, rowNumber) {
// after removing class "bg-dark"
none of these work: //
$("#tableID").DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
$(#"tableID").DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
$(#tableID).DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
$(#(tableID)).DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
// these do work:
...but this one can only be used for a table with this id, and table ids
are not consistent accross multiple CGI scripts! //
$(#deleteItems).DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
// ...but this one is what I am trying to avoid since the rest of the code
uses jQuery. //
document.getElementById(tableId).DataTable().row(rowNumber).nodes().to$().addClass("bg-white");
}