jquery 用法困惑

2016-09-09 15:28:51 +08:00
 boyhailong

功能很简单:送货地址的增删改,客户端使用 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 + '&nbsp;' + city + '&nbsp;' + region + '&nbsp;' + 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 里动态添加的数据有问题。

哪位大神知道呢?

1742 次点击
所在节点    前端开发
6 条回复
sorra
2016-09-09 15:43:32 +08:00
审查元素里看到的元素 id 是什么?
然后,咋不 debug 一下?
boyhailong
2016-09-09 15:49:27 +08:00
@sorra 额 debug 了 服务器返回的数据有问题 问题关闭了。。。。。 感谢
jjplay
2016-09-09 15:49:42 +08:00
你的 ID 获取方式 和 HTML 字符拼接 提升了整个简单的流程的难度...
boyhailong
2016-09-09 15:50:14 +08:00
@jjplay 那怎么做会简化呢
rain0002009
2016-09-09 16:18:56 +08:00
就不能用 html 的 data 存 id 么 data-id='xxx'什么的
jjplay
2016-09-09 17:09:57 +08:00
@boyhailong
https://github.com/aui/artTemplate
https://github.com/PaulGuo/Juicer

用模板,直接将变量在模板中替换 即可。
多数据的时候非常方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX