boyhailong

jquery 用法困惑

  •  
  •   boyhailong · Sep 9, 2016 · 2357 views
    This topic created in 3613 days ago, the information mentioned may be changed or developed.

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

    哪位大神知道呢?

    6 replies    2016-09-09 17:09:57 +08:00
    sorra
        1
    sorra  
       Sep 9, 2016
    审查元素里看到的元素 id 是什么?
    然后,咋不 debug 一下?
    boyhailong
        2
    boyhailong  
    OP
       Sep 9, 2016
    @sorra 额 debug 了 服务器返回的数据有问题 问题关闭了。。。。。 感谢
    jjplay
        3
    jjplay  
       Sep 9, 2016
    你的 ID 获取方式 和 HTML 字符拼接 提升了整个简单的流程的难度...
    boyhailong
        4
    boyhailong  
    OP
       Sep 9, 2016
    @jjplay 那怎么做会简化呢
    rain0002009
        5
    rain0002009  
       Sep 9, 2016
    就不能用 html 的 data 存 id 么 data-id='xxx'什么的
    jjplay
        6
    jjplay  
       Sep 9, 2016
    @boyhailong
    https://github.com/aui/artTemplate
    https://github.com/PaulGuo/Juicer

    用模板,直接将变量在模板中替换 即可。
    多数据的时候非常方便
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2802 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:53 · PVG 11:53 · LAX 20:53 · JFK 23:53
    ♥ Do have faith in what you're doing.