我想用ajax来实现购物商城中对于默认地址的切换,而不需要对界面进行重新加载,但是在操作中遇到了一些问题,主要就是字符串与数字类型数据拼接的时候遇到了bug。
以下为CSS代码:
{% for item in list %} <div class="site_con"> <dl> <dd><a href="#">{{
item.address }} {{ item.detail }} ({{ item.realname }} 收) {{ item.phone
}}</a></dd> <dd> <div> {% if item.def_address %} <input type="checkbox"
checked="checked" style="vertical-align:middle;" onclick="defAddress({{ item.id
}})" id="{{ forloop.counter}}"/> {% else %} <input type="checkbox"
style="vertical-align:middle;" onclick="defAddress({{ item.id }})" id="{{
forloop.counter }}"/> {% endif %} <span style="vertical-align:middle;"
>默认地址</span>        <a
href="/user/address_edit/?id={{ item.id }}" style="vertical-align:middle;"
>编辑</a>    <a href="#" style="vertical-align:middle;"
onclick="deleteAddress({{ item.id }})">删除</a> </div> </dd> </dl> </div> {%
endfor %}
JS代码如下:
function defAddress(currentId) {
$.get('/user/address_default/',{'currentId':currentId},function (data) {
$.each(data.address_list,function (index, item) { if(item.def_address==1){
$('#'+(index+1)+'').prop('checked',true) }else {
$('#'+(index+1)+'').prop('checked',false) } }) }) }

那么在JS代码中,id选择器是一个字符#和数字变量index以及数字1拼接起来的,在js中,字符串得与数字的拼接不需要将数字转换成字符串,JS会自动将数字转换成字符串,但是,不能这样写:
$('#'+index+1+'').prop('checked',true)
一定记住,因为拼接出来的为#11,而我们要的是#2,所以要写成:
$('#'+(index+1)+'').prop('checked',true)
这一点一定要记住,而且要细心!

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信