js的执行

ajax只能在当前页面不变的情况下请求后台,因此当然不能跨域。跨域的请求F12是没法各种跨域前的请求的,只能刷新跨域后跳到的页面跟踪

https://zhidao.baidu.com/question/528755051.html?qbl=relate_question_1&word=html%D2%B3%C3%E6%D6%D0%B5%C4%3Cscript%3E%B1%EA%C7%A9%CA%B2%C3%B4%CA%B1%BA%F2%BF%AA%CA%BC%D6%B4%D0%D0

浏览器自上而下解析html代码,从<!DOCTYPE html>到</html>,遇到js时浏览器会直接执行,(除了事件调用的脚本和声明函数的脚本)

xhr.done(function(data) {
    var filterBreakfaseList = {};
    var filterBedList = {};
    var breakfaseEnum = enumConfig.breakfastType();
    var bedEnum = enumConfig.bedType();
    $.each(data.data, function(hotelKey, hotel) {
        hotel.imageCount = hotel.images.length - 1;
        hotel.supplierRooms = hotel.supplierRooms != undefined ? hotel.supplierRooms : [];
        data.data[hotelKey]['roomCount'] = hotel.supplierRooms.length;
        $.each(hotel.supplierRooms, function(roomKey, room) {
            data.data[hotelKey]['supplierRooms'][roomKey]['breakfastShow'] = breakfaseEnum[room['breakfast']];
            filterBreakfaseList[room['breakfast']] = breakfaseEnum[room['breakfast']];
            var bedTypeShow = [];
            $.each(room.bedTypes, function(bedKey, bedType) {
                bedTypeShow.push(bedEnum[bedType]);
                filterBedList[bedType] = bedEnum[bedType];
            });
            data.data[hotelKey]['supplierRooms'][roomKey]['bedTypeShow'] = bedTypeShow.join(',');
            if(room['maxPersonNumOfBreakfast']){
                data.data[hotelKey]['supplierRooms'][roomKey]['breakfastShow'] += ' ' + room['maxPersonNumOfBreakfast'] + '人份';
            }
            roomDetailCache[room.supplierId + '_' + room.supplierRoomId] = data.data[hotelKey]['supplierRooms'][roomKey];
        });
    });



jQuery.each() 函数用于遍历指定的对象和数组。

$(function () { 
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
})

key和value只是名字,可以随便定义。

define会先执行 是什么意思(同上图在一个页面中的代码)


https://www.cnblogs.com/cvst/articles/5817916.html

JQuery中$.ajax()方法参数详解

data为要发往服务器的数据,beforeSend为请求前对XMLhttpRequest对象的修改,



http://www.jb51.net/article/65215.htm



浏览器的console调试:

直接在console控制台输入js变量和表达式就可以进行调试。

浏览器打断点:

在js里直接点左边代码一下就设置上了:

一步步往下跳即可。

调试模式下的Initiator用于解释左侧对应请求是怎么发起的



设置表单属性并提交:

$('#bookingForm').attr('action', ret.url).submit();


AJAX发起的post请求,表单数据放在Request Payload中。


提交的是hotelData,到了后台怎么突然放进了ihOrderHotelVO??


将函数绑定到 submit 事件(可以绑定到任何事件,注意这种绑定形式)

语法

$(selector).submit(function)


jquery的removeClass()方法:

移除css样式


jquery的live()方法和bind()方法:

为某个元素添加某个事件(必须是事件比如click或submit等等,不是一个随便的函数名)处理器(事件处理器是事件和事件发生时运行函数(包括参数)的总和)


$(document).ready(function(){}):

当DOM(HTML)文档全部加载完成后开始执行的ready函数

$(function(){}) 是 $(document).ready(function(){}) 的简写


var hotCityId = [];
        $("[op=hotCity]:gt(0)", "#hotCityList").each(function (key, value) {
            hotCityId.push($(value).data('cityid'));

        });

使用的jQuery,获取id为hotCityList下,包含op属性并且值为hotCity([op=hotCity])的dom对象,并且从第二个(gt选择器)开始(:gt(0))进行遍历,获取对象中缓存的cityid这个数据压入hotCityId数组中


教训:

js的执行