javascript - OnClick 表 td 变量未在 Ajax 中读取
问题描述
我遇到了麻烦,为什么在我的控制台中没有反映其他 td 值title
,date
它只反映了id
我的表。如果有人能弄清楚我在哪里做错了,那就太好了。非常感谢你
表体
<tbody>
{% csrf_token %}
{% for folder in folder_list %}
<tr>
<td> <a href="#" data-role="updategalleryss" data-id="{{ folder.id }}"><i class="fas fa-edit fa-lg"></i></a></td>
<td data-target="title">{{folder.title}}</td>
<td data-target="date_upload">{{folder.date_upload}}</td>
</tr>
{% endfor %}
</tbody>
脚本
$(document).on('click', 'a[data-role=updategalleryss]', function(){
var id = $(this).data('id');
var title = $('#'+id).children('td[data-target=title]').text();
var dateto = $('#'+id).children('td[data-target=date_upload]').text();
console.log(id) #it only read this
console.log(title)
console.log(dateto)
});
解决方案
您可以使用从单击标记的$(this).parent("td").siblings()
其他 tds 获取数据。a
演示代码:
$(document).on('click', 'a[data-role=updategalleryss]', function() {
var id = $(this).data('id');
//use this ->parent td -> siblings
var title = $(this).parent("td").siblings('td[data-target=title]').text();
var dateto = $(this).parent("td").siblings('td[data-target=date_upload]').text();
console.log(id)
console.log(title)
console.log(dateto)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td> <a href="#" data-role="updategalleryss" data-id="1"><i class="fas fa-edit fa-lg">edit</i></a></td>
<td data-target="title">somthing</td>
<td data-target="date_upload">ok</td>
</tr>
<tr>
<td> <a href="#" data-role="updategalleryss" data-id="2"><i class="fas fa-edit fa-lg">edit</i></a></td>
<td data-target="title">somthing2</td>
<td data-target="date_upload">ok2</td>
</tr>
<tr>
<td> <a href="#" data-role="updategalleryss" data-id="3"><i class="fas fa-edit fa-lg">edit</i></a></td>
<td data-target="title">somthing3</td>
<td data-target="date_upload">ok3</td>
</tr>
</tbody>
</table>
推荐阅读
- android - Android 9 配置设备和模拟器中的 API 调用显示连接错误
- google-cloud-firestore - 配额用完后,Firestore 看不到数据
- c# - 组合框项目选择更改时重新加载 DataGridview
- android - 尝试将数据加载到共享首选项和从共享首选项加载时应用程序崩溃
- android - 如何通过 Braintree 支付网关支付 INR
- node.js - 无法读取未定义的 node.js 文件系统的属性“toString”
- react-native - 在 React-Native 中,当将 appcenter 与 i18n 一起使用时,重复的 react-native 错误
- php - laravel 5.6 - 连接被拒绝
- css - Bootstrap 3,媒体查询清除:左
- ubuntu-18.04 - 如何对未在 ubuntu 中运行的程序进行故障排除