Навсегда мы используем функции javascript для передачи данных из таблицы во все, что нам нужно делать с этой строкой данных. Так, например, взять эту таблицу:Использование JQuery вместо функций для доступа к данным из таблицы
<table class="table table-hover table-striped">
<thead>
<tr>
<th>Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jack</td>
<td><a href="javascript:myfunc(1,'Jack')">edit</a></td>
</tr>
<tr>
<td>Dan</td>
<td><a href="javascript:myfunc(2, 'Dan')">edit</a></td>
</tr>
<tr>
<td>Mark</td>
<td><a href="javascript:myfunc(3, 'Mark')">edit</a></td>
</tr>
</tbody>
</table>
Обычно, мы просто имеем следующую функцию, чтобы сделать что-то с данными, который изменяется по строкам (как правило, передавая идентификатор, но иногда может быть куча аргументов в функция). Эта функция может делать разнообразие для вещей - не только эти примеры, конечно.
function myfunc(f_ID, f_Name) {
alert(f_ID + "_" + f_Name);
$.colorbox({ iframe: true, overlayClose: true, opacity: .70, inline: false, fixed: true, title: "Colorbox Title", href: "/mypage.asp?id=" + f_ID + "&name=" + f_Name });
}
ИЛИ
function myfunc(f_ID, f_Name) {
if (confirm("Are you sure that you would like to permanently delete id # " + f_ID + " for " + f_Name + "?")) {
window.location = "/mypage.asp?id=" + f_ID + "&name=" + f_Name
}
}
Я знаю, что это, вероятно, не лучший смешивать Jquery и старой школы JS, как это (возможно, это нормально ??), так что должен быть лучший способ получить доступ к этому данные.
Я думал, что могу использовать теги «data-», но проблема в том, как вы действительно получаете значение при наличии нескольких строк? Я не могу использовать идентификатор, поскольку он уникален, и если я добавил класс, как мне получить доступ к данным из этого вызова?
Любая помощь будет принята с благодарностью, спасибо!
UPDATE
Это работало как ответ на мой sitaution. Спасибо @Quentin!
<a class="testlink" href="#" data-id="1234">edit</a>
$("a.testlink").on("click", myAction);
function myAction(event) {
event.preventDefault();
alert($(this).data("id"));
}
Как мне известно, лучшим способом было бы использовать .closest(). Ниже ссылка определила, что вам нужно. http://stackoverflow.com/questions/14460421/jquery-get-the-contents-of-a-table-row-with-a-button-click – LearningPhase