请问后台在前台模板 循环出的数据应该如何获取id值?

后台输出的一个变量到前台,但是id不需要显示,所以没有在前台将id输出,
clipboard.png

现在我需要使用ajax 用post方式提交数据以作修改 ,目前我能想到的方法是使用自定义属性
clipboard.png
$(#id).attr()这种方式获取id ,这样id是可以获取到,但是获取的永远都是数据库中最大的那条数据的id ,或者是第一条数据的id,请问应该如何获取这个id呢?

clipboard.png
这是js代码

clipboard.png
这是页面显示效果,

请问应该如何获取这个id呢?

阅读 5.2k
8 个回答

元素的id值应该在页面中是唯一的,看你上面的模板应该是每一条都使用了相同的id值,这样jquery只会将查询到的第一个元素返回,所以$('#Aid').data('name'),永远得到的是第一个元素的data-name的值

var id = $('#Aid').data('name')

改成

var id = $(this).parents('[data-name]').data('name')

这样不太好,最好是这个顶层的div相对于其子元素有个唯一的class,例如layui-wrapper,这样就能改成

var id = $(this).parents('.layui-wrapper').data('name')

其实最好的方法是你把这个id以data-name的方式写到.layui-btn这个元素上,然后直接

var id = $(this).data('name')

根据你的写法$("#Aid")会返回一个数组的,因为有多高Aid元素啊。

你为什么不直接

<div id="${w.id}" class="Aid" ...>

不过你的数据修改函数绑定也不知道怎么写的,因为你的代码全是片段,不好说了,不过如果是在foreach下面有按钮,可以用其他方法绑定的,比如用按钮可以直接获取到相关信息。

因为你把每次从后台获取到的 ID 都赋值在 id 为 Aid 的元素上,能有这么元素的 ID 为 aid 吗?

新手上路,请多包涵

你点击的按钮是写在哪里的?如果是写在每一个foreach里面的话可以通过jquery的$(this),然后通过父子元素的嵌套关系来获取对应元素的id值。能把你的代码贴完整吗?

可以这样搞:
把点击事件写在保存ID值的html标签上
比如你保存ID的html标签为

<li data-name={$w.id} onClick="getID(this)"></li>

然后js这样写:

function getID(it)
{
    $(it).attr('data-name');
}

这样就可以了获取到当前点击事件的ID值了。

class当做dom的触发事件同理。

<input type="hidden" name="id" value="{$id}">

你这种渲染的方式是?

想啥呢?ID还得后台传给你的数据ID,不然对不上号有啥用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题