如何获取被点击行的id并使用该id显示该行的信息-Using backbone.js
How to get the id of the clicked row and using that id display that row's information-Using backbone.js
我有一个 table,每个 tr 里面都有一个按钮。现在,当我单击该按钮时,我想监听单击事件并在页面上显示该 tr 的信息。
这是 html:
<table>
<tbody>
<tr>
<td>Date</td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</tr>
<tr>
<td>expiry</td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</tr>
</tbody>
</table>
Js:
$('.manage-cc').on("click", function() {
var clicked = $(this).closest('tr'); //getting the tr clicked
var manageCC = new manageCCModel([],{ id: id });
manageCC.fetch({
url: 'fetch/account/list',
success: function(managecc){
var manageCCTemplate = Mustache.render(manageCCTmpl, managecc.attributes.data);
$("#account").html(manageCCTemplate);
});
上面我试图获取点击的 tr 的信息,但是在我的例子中,无论我点击哪个 'tr',它总是显示第一个 'tr' 的信息。此外,我还可以收听上面的点击事件,但我不确定将 'id' 存储在何处,以便在发生点击时,该事件将查找 'tr' 已被点击并将在页面上显示该信息。
http://jsfiddle.net/tLen4o7L/
请在下面找到我的 html table 的 o/p:
下面是点击按钮的地方,上面是点击后显示的信息页面的图片.....
这是来源:
<tr>
<td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</td>
</tr>
如果需要更多详细信息,请告诉我。
任何想法如何实现这一目标?
谢谢
在 html 中,您可以在任何标签上拥有数据属性。您可以使用它来将数据与这样的元素相关联:
<table>
<tbody>
<tr>
<td> Date </td>
<td>
<div class="cc-manage">
<a class="button manage-cc" data-rowtype="date">Manage</a>
</div>
</td>
</tr>
<tr>
<td> expiry </td>
<td>
<div class="cc-manage">
<a class="button manage-cc" data-rowtype="expiry">Manage</a>
</div>
</td>
</tr>
</tbody>
</table>
现在您只需查看事件中 "this" 元素的数据即可知道您在哪一行。
一些文档:
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
首先你需要修复 html
<table>
<tbody>
<tr>
<td>Expire Date:</td>
<td>10 March 2015</td>
<td>
<div class="cc-manage">
<button class="button manage-cc">Manage</button>
</div>
</td>
</tr>
<tr>
<td>Card number:</td>
<td>1111222233334444</td>
<td>
<div class="cc-manage">
<button class="button manage-cc">Manage</button>
</div>
</td>
</tr>
</tbody>
</table>
<div id='account'></div>
使用此 html,您可以执行以下操作:
$('.manage-cc').on("click", function() {
var clickedrow = $(this).closest('tr');
var descriptionCell = clickedrow.firstChild();
var valueCell = descriptionCell.next();
$("#account").html(descriptionCell.text() + " : " + valueCell.text() );
});
这是一个简单的演示:https://jsfiddle.net/tLen4o7L/1/
每个包含按钮的 div 都需要在 td
元素内。
要获取所点击行的 index
,请使用:
var index = $(this).closest('table').find('tr').index(clicked);
要获取所单击行的 id
,请使用:
var id = clicked.prop('id');
请记住,您的 tr
元素没有 ID。
我有一个 table,每个 tr 里面都有一个按钮。现在,当我单击该按钮时,我想监听单击事件并在页面上显示该 tr 的信息。 这是 html:
<table>
<tbody>
<tr>
<td>Date</td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</tr>
<tr>
<td>expiry</td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</tr>
</tbody>
</table>
Js:
$('.manage-cc').on("click", function() {
var clicked = $(this).closest('tr'); //getting the tr clicked
var manageCC = new manageCCModel([],{ id: id });
manageCC.fetch({
url: 'fetch/account/list',
success: function(managecc){
var manageCCTemplate = Mustache.render(manageCCTmpl, managecc.attributes.data);
$("#account").html(manageCCTemplate);
});
上面我试图获取点击的 tr 的信息,但是在我的例子中,无论我点击哪个 'tr',它总是显示第一个 'tr' 的信息。此外,我还可以收听上面的点击事件,但我不确定将 'id' 存储在何处,以便在发生点击时,该事件将查找 'tr' 已被点击并将在页面上显示该信息。 http://jsfiddle.net/tLen4o7L/
请在下面找到我的 html table 的 o/p:
下面是点击按钮的地方,上面是点击后显示的信息页面的图片.....
这是来源:
<tr>
<td>
<div class="cc-manage">
<a class="button manage-cc">Manage</a>
</div>
</td>
</tr>
如果需要更多详细信息,请告诉我。 任何想法如何实现这一目标? 谢谢
在 html 中,您可以在任何标签上拥有数据属性。您可以使用它来将数据与这样的元素相关联:
<table>
<tbody>
<tr>
<td> Date </td>
<td>
<div class="cc-manage">
<a class="button manage-cc" data-rowtype="date">Manage</a>
</div>
</td>
</tr>
<tr>
<td> expiry </td>
<td>
<div class="cc-manage">
<a class="button manage-cc" data-rowtype="expiry">Manage</a>
</div>
</td>
</tr>
</tbody>
</table>
现在您只需查看事件中 "this" 元素的数据即可知道您在哪一行。
一些文档: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
首先你需要修复 html
<table>
<tbody>
<tr>
<td>Expire Date:</td>
<td>10 March 2015</td>
<td>
<div class="cc-manage">
<button class="button manage-cc">Manage</button>
</div>
</td>
</tr>
<tr>
<td>Card number:</td>
<td>1111222233334444</td>
<td>
<div class="cc-manage">
<button class="button manage-cc">Manage</button>
</div>
</td>
</tr>
</tbody>
</table>
<div id='account'></div>
使用此 html,您可以执行以下操作:
$('.manage-cc').on("click", function() {
var clickedrow = $(this).closest('tr');
var descriptionCell = clickedrow.firstChild();
var valueCell = descriptionCell.next();
$("#account").html(descriptionCell.text() + " : " + valueCell.text() );
});
这是一个简单的演示:https://jsfiddle.net/tLen4o7L/1/
每个包含按钮的 div 都需要在 td
元素内。
要获取所点击行的 index
,请使用:
var index = $(this).closest('table').find('tr').index(clicked);
要获取所单击行的 id
,请使用:
var id = clicked.prop('id');
请记住,您的 tr
元素没有 ID。