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数组中
教训: