天天看點

JS中字元串 與數字類型資料的拼接 的方法

我想用ajax來實作購物商城中對于預設位址的切換,而不需要對界面進行重新加載,但是在操作中遇到了一些問題,主要就是字元串與數字類型資料拼接的時候遇到了bug。

以下為CSS代碼:

{% for item in list %}
            <div class="site_con">
            <dl>
                <dd><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >{{ 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                        <a href="/user/address_edit/?id={{ item.id }}" target="_blank" rel="external nofollow"  style="vertical-align:middle;" >編輯</a>&nbsp;&nbsp;&nbsp;
                        <a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  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)
           

這一點一定要記住,而且要細心!