功能很简单:送货地址的增删改,客户端使用 ajax ,增加的时候使用 ajax ,在 success 回调里根据服务器返回的数据添加新的收货地址,比如:
function addAddress(name, detail_address, email, phone_number
, province, city, region, address_id) {
var addressliHtml = '<li id=addr-li-' + address_id + '>'+
'<p><em class="name">' + name + '</em>(<em class="phone">' + phone_number + '</em>)</p>' +
' <p class="all-address">' + province + ' ' + city + ' ' + region + ' ' + detail_address + '</p>' +
'<p><em class="email">'+email+'</em></p>'+
'<p class="new_line"><br></p>' +
'<p class="address_action">' +
'<span><a href="#" class="edit float_none" id=edit-addr-' + address_id + '><i class="edit_icon"></i>修改</a></span>' +
'<span><a href="#" class="delete float_none" id=delete-addr-' + address_id + '><i class="delete_icon"></i>删除</a></span>' +
'</p>' +
'</li>';
$("#addresslist").prepend(addressliHtml);
}
这样显示上没问题,但是当点击 edit-addr-**的时候,获取对应的 address_id 却一直是固定的数字 2. 点击的事件是这样的:
$("#addresslist").on("click","a[id^=edit-addr-]", function (event) {
event.preventDefault();
//此处 address_id 一直获取不正确
var address_id = $(this).attr('id').split('-')[2];
});
表示非常不解,是中间哪个地方出问题了吗?
当然直接网页显示的地址,点击事件里获取 address_id 是没问题,只有 ajax 里动态添加的数据有问题。
哪位大神知道呢?
1
sorra 2016-09-09 15:43:32 +08:00
审查元素里看到的元素 id 是什么?
然后,咋不 debug 一下? |
2
boyhailong OP @sorra 额 debug 了 服务器返回的数据有问题 问题关闭了。。。。。 感谢
|
3
jjplay 2016-09-09 15:49:42 +08:00
你的 ID 获取方式 和 HTML 字符拼接 提升了整个简单的流程的难度...
|
4
boyhailong OP @jjplay 那怎么做会简化呢
|
5
rain0002009 2016-09-09 16:18:56 +08:00
就不能用 html 的 data 存 id 么 data-id='xxx'什么的
|
6
jjplay 2016-09-09 17:09:57 +08:00
@boyhailong
https://github.com/aui/artTemplate https://github.com/PaulGuo/Juicer 用模板,直接将变量在模板中替换 即可。 多数据的时候非常方便 |