Web开发之js技术经验介绍

 

1.基础js技术集合

1.1.js简单方法的调用范例集

运算类

<script>
//说明:以下采用简单函数function的封装,直接调用就可以显示结果,来简单说明js相关方法的使用。                                                                                  //testWriteln();
testSplit();
//testArray();
//方法split的使用,分割字符串
function testSplit(){
  alert("aaa=bb".split("=")[0]);//显示结果:aaa
  alert("aa bb cc".split(""));//显示结果:a,a, ,b,b, ,c,c (参数""默认将字符串全部用,分割)
  alert("aa bb cc".split(" "));//显示结果:aa,bb,cc  (参数" "默认将空格全部用,分割)
  alert("aalbblccldd".split("l"));//显示结果:aa,bb,cc,dd
}

//方法slice的用法,返回一个数组的一段。(仍为数组)

function testslice(){

  var arrs = "aa;bb;cc;".split(";");
  var arrs1 = arrs.splice(0,arrs.length-1);
  alert(arrs1);//显示结果aa,bb,cc,去掉了最后一个元素;

}

//数组Array的使用,以及方法join的使用
function testArray(){
  var testArr=Array();
  testArr.push("aa");//数组的填值
  testArr.push("bb");
  testArr.push("cc");
  alert(testArr[1]);//显示结果:bb

 alert(testArr.length);//显示结果:3(数组长度为3)
  var joinString1 = testArr.join();//将数组所有元素值连接起来,默认的连接符为,
  alert(joinString1);//显示结果:aa,bb,cc
  var joinString2 =testArr.join("-");//将数组所有元素值用-连接起来
  alert(joinString2);//显示结果:aa-bb-cc
}

//方法indexOf的使用
function testIndexof(){
  alert("aabbccdd".indexOf("b"));//显示结果:2 (b的位置为2)
  alert("aabbccdd".indexOf("e"));//显示结果:-1 (e没有找到,返回-1)
}

//日期函数的用法

function testDate(){

  var now = new Date();
  var time = now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate()+" "+now.getHours()+":"+now.getMinutes();
  alert(time);//显示结果2012-06-20 11:26

}

 </script>

页面类

<script type="text/javascript">                                                                                                                                                                                                                      

//页面跳转的用法-

window.location.href='http://www.sina.com'; //运行结果:页面将在本地转向新浪网址

//方法document.writeln的使用
document.write("write的使用:"+"<br>");//运行结果:输出write的使用,再换行
document.writeln("writeln的使用:");//运行结果:输出write的使用,再换行
                                                                                                                                                                                         
</script>


2.jquery技术集合

2.1.jquery的简单方法调用实例集

...

<script type="text/javascript" src="jquery-1.7.1.js"></script><!-- 记得引入基本库jquery*.js啊-->

</HEAD>

<BODY>

 <div><span>Hello</span></div>                                                                                                                                                                    
  <p class="selected">Hello Again</p>
  <p>And Again</p>

<a href="#" name="testhref">test</a>

</BODY>
<script>
//siblings的用法,实例:查找每个p元素的所有类名为"selected" 的所有同胞元素
jQuery("p").siblings(".selected").css("background", "yellow");//显示结果为:"Hello Again"文本变为黄色

//找到一个元素(此处为链接testhref),给它绑定一个click事件

jQuery("a[name='testhref']").bind('click', function() {
   alert("你被绑定了!")
  });//显示结果:点击链接'test'后,提示"你被绑定了!"。


jQuery(".selected").click(function(){//hover
   alert("我被点击了!") ; 
})//显示结果:包含selected样式的元素点击时,会提示"我被点击了!",其他还可加载许多事件如hover(鼠标移动经过 时)

</script>


jquery的事件绑定与触发

事件绑定:

 $('#listBtn').bind('click',function(event){
   window.parent.frames['mainMidFrame'].$("#searchForm")[0].submit();
 }) ;

 事件触发:

$('#listBtn').click();

jquery实现弹出窗口保存信息后局部刷新父页面数据功能

实现思路是:在父页面中用一个window变量保存打开弹出窗口的引用,并绑定这个window变量的close关闭事件中,用jquery调用父页面中的相应数据区域的刷新(查询)方法,这样就实现了在父页面中的局部刷新。例子代码如下:

//发送-快捷菜单                                                                                                                                                                                                                          
jQuery("#smsGroupSend").bind('click', function() {

   //取得弹出窗口引用的句柄
    var window = new ZUI.WindowPanel({
        title: '发送短信',
        width: 685,
        height : 450,
        divId:'smsEntryGrid',
        url: '<%=path%>/smsEntry/showResendSms.do?sendSource=1' 
    });//source短信来源:1客户关怀  
    window.show();
    //绑定关闭时刷新父页面
    window.on("close",function(){
  jQuery.zuiGrid.load({
   id : 'smsEntryGrid', //列表dom结点id
   url : ZUI.PATH + '/smsEntry/searchSmsEntryList.do', //请求数据的url
   pageConfig : { //分页参数,pageSize默认为10
    hiddenName : 'page' //分页隐藏域的名称  
   }
  });   
 })
})


jquery实现html表格table的操作

表格记录显示:

方法1:表格行标识查找插入记录(克隆行方式)

jQuery.ajax({                                                                                                                                                                                                                 
      type: "GET",
      contentType: "application/json; charset=utf-8",
      url: "<%=path%>/cluster/search?action="+actionArg,
      dataType : "json",
      success: function(results)  {
          var msgs=results[0].msg;//取得结果集
          $.each(msgs, function(i, n){//循环取记录数据
              //alert(n.createTime);
              var row = $("#tr_cluster").clone();//表格行标识的复制
              row.find("#cluster_idc").html(msgs[i].idc);
              row.find("#cluster_code").html(msgs[i].code);
              row.appendTo("#table_listCluster");//添加到表标识模板的容器中
          })
       },
      error: function(errmsg){//请求出错处理
            alert("出现错误:"+errmsg);
      }

...

<table id="table_listCluster" border="0" cellpadding="4" cellspacing="1" width="800" >
  <thead >
    <th align="center">IDC</th>
    <th align="center">集群编码</th>
  </thead>

<tr id="tr_cluster">
   <td align="center"><input name="clusterId" type="checkbox" value="" οnclick="choose()"></td>
   <td id="cluster_idc"></td>
   <td id="cluster_code"></td>
  </tr>
</table>

评价:这种方式性能不是很高有比较多的dom查找,消耗性能。

方法2:使用行模板拼接html字符串插入表格

//增加归属行记录                                                                                                                                                                                                                                                                   
function addOwnerRow(){
 //alert("add")
 rowCount++; 
 var rowTemplate ="<tr class=tr_"+rowCount+">"+
    "<td>归属<INPUT TYPE='text' name='owner' ><input type='button' value='+' οnclick='addOwnerRow()'><input type='button' value='-' οnclick='delOwnerRow()'></td>"+
    "</tr>";
 jQuery("#tbl_owners tbody").append(rowTemplate); 
}
//删除归属行记录
function delOwnerRow(){
  //alert("del")
  jQuery("#tbl_owners .tr_"+rowCount).remove();
  rowCount--;   

...

<TABLE>
<TR>
 <TD>许可号<INPUT TYPE="text" id="licenseId"></TD>
 <TD>许可内容参数名<INPUT TYPE="text" id="contentKey" value="maxOwners">
    <INPUT TYPE="button" id="queryLicense" value="查询"><INPUT TYPE="button" id="resetForm" value="重置">
 </TD>
</TR>
<TR>
 <TD>归属<input type='button' value='+' οnclick='addOwnerRow()'></TD>
 <TD></TD>
</TR>
</TABLE>

表格行点击变色

方法1:用removeClass方法
需要先增加css样式
.detailinfo_list tbody tr.hilight{background: #99CCFF;}
然后再定义事件监听方法
$(".detailinfo_list tbody tr").live("click",function(evt){
        $(".detailinfo_list tbody tr").removeClass('hilight');
$(this).addClass("hilight");
});
方法2:用css方法
$(".detailinfo_list tbody tr").live("click",function(evt){
$(".detailinfo_list tbody tr").css("background","");
$(this).css("background","#99CCFF");
});
这样就可以了,比较简便


表格行记录的上移、下移

//上移、下移排序                                                                                                                                                                                          
function sort(sortType){
  var check_employeeId = document.getElementsByName("employeeId");//这里是一个行记录的选中标识对应的字段
  var icount=0;
  var data_tr;//移动目标

  for(var i=0;i<check_employeeId.length;i++){//循环行记录
    if(check_employeeId[i].checked){
      data_tr=jQuery(check_employeeId[i]).parent().parent();//移动目标赋值,取得选中字段项的父对象(tr行标识)
      icount++;//统计选中的行记录
    }
  }
  if(icount==0){
    alert("请选择记录!");
    return;
  }else if(icount>1){
    alert("一次只能操作一条记录!");
    return;
  }
  
  if(sortType=='moveUp'){//上移
    if(jQuery(data_tr).prev().html()==null){ //获取tr的前一个相同等级的元素是否为空
         alert("已经是最顶部了!");
         return;
    }
    jQuery(data_tr).insertBefore(jQuery(data_tr).prev()); //将本身插入到目标tr的前面
  }else if(sortType=='moveDown'){//下移
    if(jQuery(data_tr).next().html()==null){
         alert("已经是最低部了!");
         return;
    }
    jQuery(data_tr).insertAfter(jQuery(data_tr).next()); //将本身插入到目标tr的后面 
  }
  //排序后重新取得employeeId值,传递给后端更新排序
  var employeeAllIds="";//表格中所有的id组合串
  check_employeeId = document.getElementsByName("employeeId");
  for(var i=0;i<check_employeeId.length;i++){
    employeeAllIds += check_employeeId[i].value+',';//组装employeeIds
  }
  employeeAllIds =employeeAllIds.substring(0,employeeAllIds.length -1);
//  alert(employeeAllIds);  return ;
  var orgId='<%=request.getParameter("orgId")%>';
//alert(orgId);return;
  if(orgId==null||orgId==''){
    alert("当前机构不能为空!");
    return;
  }

   jQuery(function(){
      var options = {
        url: "<%=path%>/emp/sortEmployeeInfo.do",
        dataType : "json",
        data: {employeeAllIds:employeeAllIds,orgId:orgId},
        success: function(responseText, statusText, xhr, $form)  {
          //alert("数据成功!");
        },
        error: function(){
          alert("出现错误,无满足条件的记录!");    //请求出错处理
        }
      }; 
      var form = jQuery('#listForm');
      form.ajaxSubmit(options);
    })//end jquery-function
}


列表框控件的使用

//列表多选                                                                                                                                                              
function allChoose(){
  var ckA = document.getElementById("allcheckbox");
  var ck =document.getElementsByName("employeeId");
 if(ckA.checked==true){
  for(var i=0; i<ck.length;i++){
           ck[i].checked=true; 
     }
 }else{
  for(var i=0; i<ck.length;i++){
         ck[i].checked=false;
     }
 }
}
function choose(){
      var ckA = document.getElementById("allcheckbox");
      var ck =document.getElementsByName("employeeId");
      for(var i=0;i<ck.length;i++){
          if(ck[i].checked==false){
             ckA.checked=false;
             break;
          }
      }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云焰

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值