在django对templates进行渲染时,利用for循环迭代出的列表如
{% for user in users %}
<tr>
<td>{{user.name}}</td>
<td>{{user.age}}</td>
<button type = "button" value="{{user.id}}" onclick="delete()"><button/>
</tr>
{% endfor %}
此时若想通过点击某行数据后的按钮进行删除,但是发现定义了delete()方法后,每个按钮都具有一样的name,id,以及class。根本无法获得当前的value,此时利用js中的自定义属性。id,class,name都为js中的内置属性,利用
<button type = "button" value="{{user.id}}" onclick="delete()" userid="{{user.id}}"><button/>
var id = $(this).attr("id");
在delete()方法中就可利用attr(‘id’)方法取得该button中内置属性userid的值,此时就可以完成对应操作;
常见两种方法:
1.在删除某列时,设置一个<input type = "hidden" id = "hiddenuserid" >,通过第一次点击按钮让当前按钮的自定义属性userid赋值给该隐藏框:
var id = $(this).attr("userid"); //id
$("#hiddenuserid").val(id);
第二步确认删除后再通过ajax与jquery取到该值后进行发送var id = $("#hiddenuserid").val()
2.如上所示,在迭代的button中设置自定义属性,使其保存需要的数据,在通过取得自定义属性的值进行发送。