??xml version="1.0" encoding="utf-8" standalone="yes"?> 在JS中,创徏对象QCreate ObjectQƈ不完全是我们时常说的创徏cd象,JS中的对象的是一U复合类型,JS中创建对象及对对象的讉K是极其灵zȝ?/p> JS对象是一U复合类型,它允怽通过变量名存储和讉KQ换一U思\Q对象是一个无序的属性集合,集合中的每一w由名U和值组成(听v来是不是很像我们常听说的HASH表、字典、健/值对Q)Q而其中的值类型可能是内置cd(如number,string)Q也可能是对象?/p> 一、由一对大括号括v?/strong> 刚开始学?fn)jQueryQ可能一时会(x)分不清楚哪些是jQuery对象Q哪些是DOM对象。至于DOM对象不多解释Q我们接触的太多了,下面重点介绍一下jQueryQ以及两者相互间的{换?/p>
什么是jQuery对象Q?/strong> ---是通过jQuery包装DOM对象后生的对象。jQuery对象是jQuery独有的,其可以用jQuery里的Ҏ(gu)?/p>
比如Q?/p>
$("#test").html() 意思是指:(x)获取ID为test的元素内的html代码。其中h(hun)tml()是jQuery里的Ҏ(gu) q段代码{同于用DOM实现代码Q?/p>
虽然jQuery对象是包装DOM对象后生的Q但是jQuery无法使用DOM对象的Q何方法,同理DOM对象也不能用jQuery里的Ҏ(gu). ׃用会(x)报错。比如:(x)$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的?/p>
q有一个要注意的是Q用#id作ؓ(f)选择W取得的是jQuery对象与document.getElementById("id")得到的DOM对象Q这两者ƈ不等仗请参看如下说的两者间的{换?/p>
既然jQuery有区别但也有联系Q那么jQuery对象与DOM对象也可以相互{换。在再两者{换前首先我们l一个约定:(x)如果一个获取的?jQuery对象Q那么我们在变量前面加上$Q如Qvar $variab = jQuery对象Q如果获取的是DOM对象Q则与习(fn)惯普通一P(x)var variab = DOM对象Q这么约定只是便于讲解与区别Q实际用中q不规定?/p>
jQuery对象转成DOM对象Q?/strong> 两种转换方式一个jQuery对象转换成DOM对象Q[index]?get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象?/p>
如:(x)var $v =$("#v") ; //jQuery对象 var v=$v[0]; //DOM对象 alert(v.checked) //这个checkbox是否被选中 (2)jQuery本n提供Q通过.get(index)Ҏ(gu)Q得到相应的DOM对象 如:(x)var $v=$("#v"); //jQuery对象 var v=$v.get(0); //DOM对象 alert(v.checked) //这个checkbox是否被选中 DOM对象转成jQuery对象: 对于已经是一个DOM对象Q只需要用$()把DOM对象包装hQ就可以获得一个jQuery对象了?(DOM对象) 如:(x)var v=document.getElementById("v"); //DOM对象 var $v=$(v); //jQuery对象 转换后,可以Q意用jQuery的方法了?/p>
通过以上Ҏ(gu)Q可以Q意的怺转换jQuery对象和DOM对象。需要再注意的是QDOM对象才能使用DOM中的Ҏ(gu)QjQuery对象是不可以用DOM中的Ҏ(gu)?/p> var timeout = false; // hold timeout ID for suggestion results to appear $results = $(options.attachObject); $input.blur(function() { // help IE users if possible $input.keyup(processKey);// e.cancelBubble = true; $results.html(html).show().bgiframe(); } if( $(options.dataContainer) ) { window.location.reload()h当前面. parent.location.reload()h父亲对象Q用于框Ӟ opener.location.reload()h父窗口对象(用于单开H口Q?/span> top.location.reload()h最端对象Q用于多开H口Q?/span> 下面再介l一些javascript基本函数 //让层居中昄-?/span>版本 function setDivToCenter(obj) { obj.style.top = (viewPort.top + viewPort.height/2 - obj.offsetHeight/2) + "px"; function showDiv(obj){//面可以用obj == document.getElementById(); function center(obj){//面可以用obj == document.getElementById(); //让层居中隐藏JavaScript 创徏c?对象的几U方?/a>
var myObj =
{
'id': 1, //属性名用引hhQ属性间由逗号隔开
'name': 'myName'
};
//var m = new myObj(); //不支?/span>
{
'id': 1,
'fun': function() {
document.writeln(this.id + '-' + this.name);//?对象.属?方式讉K
},
'name': 'myObj',
'fun1': function() {
document.writeln(this['id'] + '+' + this['name']);//以集合方式访?/span>
}
};
myObj.fun();
myObj.fun1();
// l果
// 1-myObj 1+myObj
this.id = 5;
this.name = 'myclass';
this.getName = function() {
return this.name;
}
}
var my = new myClass();
alert(my.id);
alert(my.getName());
// l果
// 5
// myclass
var obj =
{
'id':2,
'name':'myclass'
};
return obj;
}
function _myClass() {
var obj = new Object();
obj.id = 1;
obj.name = '_myclass';
return obj;
}
var my = new myClass();
var _my = new _myClass();
alert(my.id);
alert(my.name);
alert(_my.id);
alert(_my.name);
// l果
// 2
// myclass
// 1
// _myclass
]]>
]]>
document.getElementById("id").innerHTML;
$.suggest = function(input, options) {
var $input = $(input).attr("autocomplete", "off");
var $results;
var prevLength = 0; // last recorded length of $input.val()
var cache = []; // cache MRU list
var cacheSize = 0; // size of cache in chars (bytes?)
if($.trim($input.val())=='' || $.trim($input.val())=='中文/拼音') $input.val('中文/拼音').css('color','#aaa');
if( ! options.attachObject )
options.attachObject = $(document.createElement("ul")).appendTo('body');
$results.addClass(options.resultsClass);
resetPosition();
$(window)
.load(resetPosition) // just in case user is changing size of page while loading
.resize(resetPosition);
//失去焦点时不用选中
//selectCurrentResult();
//$results.hide();
});
$input.focus(function(){
if($.trim($(this).val())=='中文/拼音'){
$(this).val('').css('color','#000');
}
if($.trim($(this).val())==''){
displayItems('');//昄热门酒店列表
}
});
$input.click(function(){
var q=$.trim($(this).val());
displayItems(q);
ShowMark1();
// $(this).select();
});
try {
$results.bgiframe();
} catch(e) { }
function resetPosition() {
// requires jquery.dimension plugin
var offset = $input.offset();
$results.css({
top: (offset.top + input.offsetHeight) + 'px',
left: offset.left + 'px'
});
}
function processKey(e) {
// handling up/down/escape requires results to be visible
// handling enter/tab requires that AND a result to be selected
if ((/27$|38$|40$/.test(e.keyCode) && $results.is(':visible')) ||
(/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {
if (e.preventDefault)
e.preventDefault();
if (e.stopPropagation)
e.stopPropagation();
e.returnValue = false;
switch(e.keyCode) {
case 38: // up
prevResult();
break;
case 40: // down
nextResult();
break;
case 13: // return
selectCurrentResult();
break;
case 27: // escape
$results.hide();
break;
}
} else if ($input.val().length != prevLength) {
if (timeout)
clearTimeout(timeout);
timeout = setTimeout(suggest, options.delay);
prevLength = $input.val().length;
}else if(e.keyCode!=this.keyCode){
if (timeout)
clearTimeout(timeout);
timeout = setTimeout(suggest, options.delay);
prevLength = $input.val().length;
}
}
function suggest() {
var q = $.trim($input.val());
displayItems(q);
}
function displayItems(items) {
var html = '';
if (items=='') {//热门城市遍历
for(h in options.hot_list){
html+='<li rel="'+options.hot_list[h][0]+'"><a href="#'+h+'">'+options.hot_list[h][1]+'</a></li>';
}
html='<div class="gray ac_result_tip">误入中?拼音或?#8593;↓选择</div><ul>'+html+'</ul>';
}
else {
/*if (!items)
return;
if (!items.length) {
$results.hide();
return;
}*/
for (var i = 0; i < options.source.length; i++) {//酒店
var reg = new RegExp('.*?' + items + '.*?', 'im');//var reg = new RegExp('^' + items + '.*$', 'im');
if (reg.test(options.source[i][0]) || reg.test(options.source[i][1]) || reg.test(options.source[i][2]) || reg.test(options.source[i][3])) {
html += '<li rel="' + options.source[i][0] + '"><a href="#' + i + '" >' + options.source[i][1] + '</a></li>';
}
}
if (html == '') {
suggest_tip = '<div class="gray ac_result_tip">对不P找不刎ͼ(x)' + items + '</div>';
}
else {
suggest_tip = '<div class="gray ac_result_tip">' + items + 'Q按拼音排序</div>';
}
html = suggest_tip + '<ul>' + html + '</ul>';
}
$results.children('ul').children('li:first-child').addClass(options.selectClass);
$results.children('ul')
.children('li')
.mouseover(function() {
$results.children('ul').children('li').removeClass(options.selectClass);
$(this).addClass(options.selectClass);
})
.click(function(e) {
e.preventDefault();
e.stopPropagation();
selectCurrentResult();
HideMark1();
});
}
function getCurrentResult() {
if (!$results.is(':visible'))
return false;
var $currentResult = $results.children('ul').children('li.' + options.selectClass);
if (!$currentResult.length)
$currentResult = false;
return $currentResult;
function selectCurrentResult() {
$currentResult = getCurrentResult();
if ($currentResult) {
$input.val($currentResult.children('a').html().replace(/<span>.+?<\/span>/i,''));
$results.hide();
$(options.dataContainer).val($currentResult.attr('rel'));
}
if (options.onSelect) {
options.onSelect.apply($input[0]);
}
}
}
function ss()
{
alert("点击li");
}
function nextResult() {
$currentResult = getCurrentResult();
$currentResult.removeClass(options.selectClass);
if ($currentResult.next().is("li"))
$currentResult.next().addClass(options.selectClass);
else
$results.children('ul').children('li:first-child').addClass(options.selectClass);
}
function prevResult() {
$currentResult = getCurrentResult();
$currentResult.removeClass(options.selectClass);
if ($currentResult.prev().is("li"))
$currentResult.prev().addClass(options.selectClass);
else
$results.children('ul').children('li:last-child').addClass(options.selectClass);
}
}
$.fn.suggest = function(source, options) {
if (!source)
return;
options = options || {};
options.source = source;
options.hot_list=options.hot_list || [];
options.delay = options.delay || 0;
options.resultsClass = options.resultsClass || 'ac_results';
options.selectClass = options.selectClass || 'ac_over';
options.matchClass = options.matchClass || 'ac_match';
options.minchars = options.minchars || 1;
options.delimiter = options.delimiter || '\n';
options.onSelect = options.onSelect || false;
options.dataDelimiter = options.dataDelimiter || '\t';
options.dataContainer = options.dataContainer || '#SuggestResult';
options.attachObject = options.attachObject || null;
this.each(function() {
new $.suggest(this, options);
});
return this;
};
})(jQuery);
]]>
]]>
使用q个函数的典型情冉|?parseInt ?parseFloat Ҏ(gu)的返回倹{?
2.onkeyup='value=value.replace(/[^0-9]/g,\"\")' onbeforepaste='clipboardData.setData(\"text\",clipboardData.getData(\"text\").replace(/[^0-9]/g,\"\"))'
输入文本框内不允许有非数字|onbeforepaste_脓(chung)事g
3.function backPageTop(){
//$('html,body').animate({scrollTop: 0},"fast");
$('html,body').animate({scrollTop: 0},1);
}
该方法可以作?/strong>回到剙按钮操作
4.javascript delete函数的用:(x)参见http://m.oschina.net/blog/28926
5.下面介绍全页面刷新方法:(x)有时候可能会(x)用到
]]>
一、蒙灰层
//昄蒙灰?br />function ShowMark(){
var xp_mark=document.getElementById("xp_mark");
if(xp_mark!=null) {
//讄DIV
xp_mark.style.left=0+"px";
xp_mark.style.top=0+"px";
xp_mark.style.position="absolute";
xp_mark.style.backgroundColor="#000";
xp_mark.style.zIndex="1";
if(document.all) {
xp_mark.style.filter="alpha(opacity=50)";
var Ie_ver=navigator["appVersion"].substr(22,1);
if(Ie_ver==6||Ie_ver==5){hideSelectBoxes();}
}
else{xp_mark.style.opacity="0.5";}
xp_mark.style.width="100%";
// var heights=XP_getPageSize().h;
// if(heights<600) {
// heights=620;
// }
// xp_mark.style.height=heights+"px";
xp_mark.style.height=="100%";
xp_mark.style.display="block";
}
else{
//面ddiv explainDiv,注意必须是紧跟body 内的W一个元?否则IE6不正?
$("body").prepend("<div id='xp_mark' style='display:none;'></div>");
ShowMark();//l箋回调自己
}
}
//隐藏蒙灰?br />function HideMark(){
var xp_mark=document.getElementById("xp_mark");
xp_mark.style.display="none";
var Ie_ver=navigator["appVersion"].substr(22,1);
if(Ie_ver==6||Ie_ver==5){showSelectBoxes();}
}
//获取面的高度与宽度
function XP_getPageSize(){
var pt = {w:0,h:0};
if (window.innerHeight && window.scrollMaxY){
pt.w = document.body.scrollWidth;
pt.h = window.innerHeight + window.scrollMaxY;
}
else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
pt.w = document.body.scrollWidth;
pt.h = document.body.scrollHeight;
}
else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
pt.w = document.body.offsetWidth;
pt.h = document.body.offsetHeight;
}
return pt;
}
//昄所有的下拉列表?br />function showSelectBoxes(){
selects = document.getElementsByTagName("select");
for (i = 0; i != selects.length; i++) {selects[i].style.visibility = "visible"; }
}
//隐藏所有的下拉列表?br />function hideSelectBoxes(){
selects = document.getElementsByTagName("select");
for (i = 0; i != selects.length; i++) {selects[i].style.visibility = "hidden";}
}
二、弹出显C层div
obj.style.position = "absolute";
obj.style.zIndex = "222";
obj.style.display = "block";
var d = document.documentElement, b = document.body, w = window;
var viewPort ={ left:0, top: 0, width:0, height:0};
viewPort.top = b.scrollTop || d.scrollTop ;
viewPort.left = b.scrollLeft || d.scrollLeft ;
viewPort.height = w.innerHeight || d.clientHeight || b.clientHeight;
viewPort.width = w.innerWidth || d.clientWidth || b.clientWidth;
obj.style.left = (viewPort.left + viewPort.width/2 - obj.offsetWidth/2) + "px";
}
//让层居中昄-?/span>版本
$(obj).show().css({"zIndex":"222","position":"absolute"});
center(obj);
$(window).scroll(function(){
center(obj);
});
$(window).resize(function(){
center(obj);
});
}
var windowWidth = document.documentElement.clientWidth;
var windowHeight = document.documentElement.clientHeight;
var popupHeight =$(obj).height();
var popupWidth =$(obj).width();
$(obj).css({
"top": (windowHeight-popupHeight-200)/2+$(document).scrollTop()+130,
"left": (windowWidth-popupWidth)/2
});
}
function closeDiv(obj){
$(obj).hide();
$(window).unbind();
}
]]>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript" src="http://www.517hk.com/js/cityjs/jquery-1.4.2.min.js"></script>
<SCRIPT LANGUAGE="JavaScript">
<!--
// l定q月获取当月天数
function GetMDay(y, m) {
var mday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if ((y % 40 == 0 && y % 100 != 0) || y % 400 == 0)//判断是否是闰?nbsp;
mday[1] = 29;
return mday[m - 1];
}
// 获取星期?nbsp;
function WeekNumber(y, m, d) {
var wk;
if (m <= 12 && m >= 1) {
for (var i = 1; i < m; ++i) {
d += GetMDay(y, i);
}
}
/*Ҏ(gu)日期计算星期的公?/
wk = (y - 1 + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400 + d) % 7;
//0对应星期天,1对应星期一
return parseInt(wk);
}
function SetCalendar(year, month) {
var daynumber = GetMDay(year, month); //当月天数
//alert("当月天数 "+daynumber);
var firstnumber = WeekNumber(year, month, 1); //当月W一天星?nbsp;
//alert("当月W一天星?nbsp; "+firstnumber);
var lastnumber = WeekNumber(year, month, daynumber); //当月最后一天星?nbsp;
//alert("当月最后一天星?nbsp; "+lastnumber);
var weeknumber = (daynumber - (7 - firstnumber) - (lastnumber + 1)) / 7; //除去W一个星期和最后一个星期的周数
//alert("除去W一个星期和最后一个星期的周数 "+weeknumber);
var day = 1;
var name;
var calendar = "";
calendar += "<table border=\"0\" cellspacing=\"1\" style=\"background-color:#a0c6e5\">";
calendar += "<tr>";
calendar += "<td>星期?lt;/td>";
calendar += "<td>星期一</td>";
calendar += "<td>星期?lt;/td>";
calendar += "<td>星期?lt;/td>";
calendar += "<td>星期?lt;/td>";
calendar += "<td>星期?lt;/td>";
calendar += "<td>星期?lt;/td>";
calendar += "</tr>";
calendar += "<tr>";
var i = 0;
for (i = 0; i < firstnumber; i++)//W一个星?nbsp;
{
calendar += "<td></td>";
}
for (i = firstnumber; i < 7; i++) {
name = year + "-" + month + "-" + day;
calendar += "<td id=\"" + name + "\">" + day + "</td>";
day++;
}
calendar += "</tr>";
var number = 0;//星期敎ͼ末尾dI用,l一样式?nbsp;
for (i = 0; i < weeknumber; i++)//其他星期
{
calendar += "<tr>";
for (var k = daynumber - (7 - firstnumber) - (weeknumber - 1) * 7; k < daynumber - (7 - firstnumber) - (weeknumber - 1) * 7 + 7; k++) {
name = year + "-" + month + "-" + day;
calendar += "<td id=\"" + name + "\">" + day + "</td>";
day++;
}
calendar += "</tr>";
number++;
}
calendar += "<tr>";
for (i = 0; i < lastnumber + 1; i++)//最后一个星?nbsp;
{
name = year + "-" + month + "-" + day;
calendar += "<td id=\"" + name + "\">" + day + "</td>";
day++;
}
for (i = lastnumber + 1; i < 7; i++) {
calendar += "<td>";
calendar += "</td>";
}
calendar += "</tr>";
if (number == 3) {
calendar += "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
}
calendar += "</table>";
return calendar;
}
function show(){
$("td").each(function(){
if($(this).attr("id")=="2011-8-7"){
$(this).html("试1");
}
})
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<input id="" type="text"/>起始日期 <input id="" type="text"/>截止日期 <input id="" type="text"/>搜烦
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(SetCalendar(2011,8));
document.write("<input type='button' onclick='show()'/><br/>");
document.write("<br/>");
//-->
</SCRIPT>
</BODY>
</HTML>