您的位置:

首页 >

腾博会官网9888 >

jQuery获取Table某列的值(推荐) >

jQuery获取Table某列的值(推荐)

2016-08-18 15:19:02

分类:腾博会官网9888

在写此篇博文时,发现在以前曾写过《获取DataTable选择第一行某一列值》http://www.cnblogs.com/insus/p/5434062.html 。但是与此篇所说的完全不一样。这篇Insus.NET需要的是jQuery去获取html table的某一行某一列的数据。如下表:Html code:<table> <tr> <th style="width:10px;"><input id="SelectAll" type="checkbox" /></th> <th>ID</th> <th>费用名目</th> <th>费用解释</th> <th>收费明细</th> <th>币种</th> <th style="width:50px;">操作</th> </tr> @foreach (var m in new HighwayAdditionalChargeEntity().HighwayAdditionalCharges()) { <tr class="trData"> <td><input id="" class="SelectSingle" type="checkbox" value="@m.HighwayAdditionalCharge_nbr" /></td> <td>@m.HighwayAdditionalCharge_nbr</td> <td>@m.Item</td> <td>@m.Description</td> <td>@m.Itemizations</td> <td>@m.Currency</td> <td> <input class="Select" id="ButtonSelect" type="button" value="选择" /> </td> </tr> } </table> 当用户点击某一行最后一列的“选择”铵钮时,想获取此铵钮本行中某一列的数据。Insus.NET有在图中示出,列与索引。索引是从0开始。如想获取“费用名目”列值,此列的列索引是2。 演示:上面我们获取值,是使用了.text()方法。但某一时候,你想获取列的值,它是html代码,那我们可以使用.html()方法。下面Insus.NET稍修改一下:演示:其实,使用索引来获取值,只是一种方法,但它不是Insus.NET最理想的方法首选。由于数据行是动态呈现,列也有可能会变更。因此Insus.NET还是习惯使用样式class来实现:举个列子,想获取“费用解释”列的值,在此列添加一个class:jQuery代码:演示:以上所述是小编给大家介绍的jQuery获取Table某列的值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

indexOf()方法indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。注释:indexOf() 方法对大小写敏感!注释:如果要检索的字符串值没有出现,则该方法返回 -1。用之前的charAt()方法var str ='www.webclks.com/archives/3309';for(var i=0; i<str.length; i++){ if(str.charAt(i)==='/'){ alert(i); }}indexOf()方法var str ='www.webclks.com/archives/3309';alert(str.indexOf('/')); // 从第0个开始查alert(str.indexOf('/',16)); // 从第16个开始查alert(str.indexOf('x')); // 查不到返回-1;indexOf()方法实例var str='专注脚本学习,分享脚本学习资料和学习心得技巧!';var s='脚本; // 要查询的内容var i=0; // 从第几个开始查询/*for(;str.indexOf(s,i)!=-1;){ alert(str.indexOf(s,i)); i=str.indexOf(s,i)+s.length;}*/while(str.indexOf(s,i)!=-1){ alert(str.indexOf(s,i)); i=str.indexOf(s,i)+s.length; }lastIndexOf()方法lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。注释:lastIndexOf() 方法对大小写敏感!注释:如果要检索的字符串值没有出现,则该方法返回 -1。lastIndexOf()方法实例var str='专注Web前端学习,分享Web前端学习资料和学习心得技巧!';alert(str.indexOf('W',0)); // 从前往后查alert(str.lastIndexOf('W',24)); // 从后往前查如果第2个值为负数,默认当成0来处理总结以上就是本文的全部内容,希望对大家的学习工作能有所帮助,如果有疑问可以留言交流。

JQuery是一个很大强的工具库,在工作中开发中,可是有些方法还是因为不常用到,或是没有注意到而被我们而忽略。remove()和detach()可能就是其中的一个,可能remove()我们用得比较多,而detach()就可能会很少了通过一张对比表来解释2个方法之间的不同 方法名 参数 事件及数据是否也被移除 元素自身是否被移除 remove 支持选择器表达 是 是(无参数时),有参数时要根据参数所涉及的范围 detach 参数同remove 否 情况同remove remove:移除节点- 无参数,移除自身整个节点以及该节点的内部的所有节点,包括节点上事件与数据- 有参数,移除筛选出的节点以及该节点的内部的所有节点,包括节点上事件与数据detach:移除节点- 移除的处理与remove一致- 与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来- 例如:$("p").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。eq:<html><head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <style type="text/css"> p { border: 1px solid red; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script></head><body><h3>给页面2个p元素节点绑定点击事件,点击后弹出自己本身的节点内容</h3><p>元素p1,同时绑定点击事件</p><p>元素p2,同时绑定点击事件</p><h3>通过点击2个按钮后观察方法处理的区别</h3><button>点击通过remove处理元素p1</button><button>点击通过detach处理元素p2</button></body><script type="text/javascript"> //给页面上2个p元素都绑定时间 $('p').click(function (e) { alert(e.target.innerHTML) }) $("button:first").click(function () { var p = $("p:first").remove(); p.css('color', 'red').html('p1通过remove处理后,点击该元素,事件丢失') $("body").append(p); }); $("button:last").click(function () { var p = $("p:first").detach(); p.css('color', 'blue').text('p2通过detach处理后,点击该元素事件存在') $("body").append(p); });</script></script></html >以上这篇老生常谈jquery中detach()和remove()的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

废话不多说具体代码如下所示:package com.rc.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sf.json.JSONObject; import com.rc.dao.R_mailboxDAO; import com.rc.daoimpl.R_mailboxDAOimpl; import com.rc.dbutil.Sqltools; import com.rc.entity.Mailbox; import com.rc.entity.R_user; import com.rc.entity.TreeNodes; import com.rc.util.Page; import com.rc.util.PageUtil; public class MailBoxServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String action =request.getParameter("action"); HttpSession hs = request.getSession(false); //读取登录人员session R_user cuser =(R_user)hs.getAttribute("user"); PrintWriter out = null; R_mailboxDAO mb = new R_mailboxDAOimpl(); boolean b = true; if("page".equals(action)){//查询所有 int pageNumber = 0; String PageNumberstr = request.getParameter("pageNumber");//从页面获取的当前页 int count =mb.getcount(); if(PageNumberstr == null||"".equals(PageNumberstr)){ pageNumber= 1; }else{ pageNumber = Integer.parseInt(PageNumberstr);//否则强转 } List <Page> pages = new ArrayList<Page>(); Page page = PageUtil.createPage(5, count, pageNumber); pages.add(page); List<Mailbox> mailboxlist = mb.getcostList(page); JSONObject obj = new JSONObject();//定义一个json对象 obj.put("mailbox", mailboxlist); obj.put("Page", pages); out = response.getWriter(); out.write(obj.toString()); }else if("delete".equals(action)){//删除操作 String mid = request.getParameter("id"); JSONObject obj = new JSONObject(); b =mb.delete(Integer.parseInt(mid));//用boolean接收 obj.put("biaozhi",b); out = response.getWriter(); out.write(obj.toString()); }else if("edit".equals(action)){//弹出编辑页面 }else if("tedit".equals(action)){//提交编辑信息 }else if("pldelete".equals(action)){//批量删除 JSONObject obj = new JSONObject(); String deleteidlist = request.getParameter("deleteidlist"); String[] item = deleteidlist.split(","); for (int i = 0; i < item.length; i++) { b =mb.delete(Integer.parseInt(item[i])); } obj.put("biaozhi",b); out = response.getWriter(); out.write(obj.toString()); }else if("tree".equals(action)){ List<TreeNodes> treelist = mb.getnodes(); JSONObject obj = new JSONObject();//定义一个json对象 obj.put("treelist", treelist); out = response.getWriter(); out.write(obj.toString()); }else if("save".equals(action)){ String id = request.getParameter("id"); String zhuti = request.getParameter("zhuti"); String content = request.getParameter("content"); Mailbox mail = new Mailbox(); mail.setS_id(Integer.parseInt(id));//收件人 mail.setS_name(Sqltools.findusername(Integer.parseInt(id)));//收件人姓名 mail.setP_name(cuser.getUsername());//发件人姓名 mail.setP_id(cuser.getId()); mail.setContent(content); mail.setTitle(zhuti); b = mb.addmailbox(mail); JSONObject obj = new JSONObject(); obj.put("biaozhi", b); out = response.getWriter(); out.write(obj.toString()); } } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }dao层package com.rc.dao; import java.util.List; import com.rc.entity.Mailbox; import com.rc.entity.TreeNodes; import com.rc.util.Page; public interface R_mailboxDAO { public List<Mailbox> getcostList(Page page); //获取全部的邮件 public int getcount();//获取数目 public boolean delete(Integer id); //删除 public boolean add(Mailbox mail);//写信 public boolean update(Integer id);//修改 public List<TreeNodes> getnodes();//树 public boolean addmailbox(Mailbox mail);//添加邮件 }daoimpl<pre name="code" class="html">ackage com.rc.daoimpl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.rc.dao.R_mailboxDAO; import com.rc.dbutil.Sqltools; import com.rc.entity.Mailbox; import com.rc.entity.TreeNodes; import com.rc.util.Page; import com.rc.util.StringUtil; public class R_mailboxDAOimpl implements R_mailboxDAO { boolean b=true; Connection cnn = null; PreparedStatement ps = null; ResultSet rs= null; Statement st = null; String sql=""; @Override public List<Mailbox> getcostList(Page page) { List <Mailbox> mailboxlist = new ArrayList<Mailbox>();//定义一个数组 int startsize = page.getCurrentPage()*page.getEverPage(); int endsize = (page.getCurrentPage()-1)*page.getEverPage()+1; sql = "select * from (select a1.*,rownum rn from (select * from mailbox order by m_id desc) a1 WHERE rownum<="+startsize+") where rn>="+endsize+""; try{ rs =Sqltools.excuteQuery(sql, null); while(rs.next()){ Mailbox mailbox = new Mailbox(); mailbox.setMid(rs.getInt("m_id")); mailbox.setP_name(rs.getString("p_name")); mailbox.setS_name(rs.getString("r_name")); mailbox.setStatus(rs.getString("r_status")); mailbox.setContent(rs.getString("r_content")); mailbox.setTitle(rs.getString("r_title")); mailbox.setR_time(StringUtil.TimetoString(rs.getDate("r_time"))); mailboxlist.add(mailbox); } }catch(Exception e){ Sqltools.close(rs, st, cnn); } return mailboxlist.size()==0 ? null:mailboxlist; } @Override public int getcount() { int count =0; sql = "select count(*) from mailbox"; try{ cnn = Sqltools.getConnection(); ps = cnn.prepareStatement(sql); rs = ps.executeQuery(); if(rs.next()){ count = rs.getInt(1); } }catch(Exception e){ e.printStackTrace(); }finally{ Sqltools.close(rs, ps, cnn); } return count; } @Override public boolean delete(Integer id) { sql="delete from mailbox where m_id=?"; try{ cnn=Sqltools.getConnection(); ps=cnn.prepareStatement(sql); ps.setInt(1, id); ps.executeUpdate(); }catch(Exception e){ b=false; e.printStackTrace(); }finally{ Sqltools.aclose(rs, ps, cnn); } return b; } @Override public boolean add(Mailbox mail) { return false; } @Override public boolean update(Integer id) { return false; } @Override public List<TreeNodes> getnodes() {//得到树节点 String sql = "select * from tree_table order by nid "; cnn = Sqltools.getConnection(); ArrayList<TreeNodes> treelist = new ArrayList<TreeNodes>(); try { ps = cnn.prepareStatement(sql); rs =ps.executeQuery(); while (rs.next()){ TreeNodes node = new TreeNodes(); node.setNid(rs.getInt("nid")); node.setParentId(rs.getInt("parentid")); node.setNodeName(rs.getString("nodename")); treelist.add(node); } } catch (SQLException e) { e.printStackTrace(); }finally{ Sqltools.aclose(rs, ps, cnn); } return treelist; } @Override public boolean addmailbox(Mailbox mail) { sql = "insert into mailbox(m_id,p_name,r_name,p_id,r_id,r_content,r_title,r_send,r_status,r_time) values(mailbox_id_seq.nextval,?,?,?,?,?,?,?,?,sysdate)"; try{ cnn =Sqltools.getConnection(); ps = cnn.prepareStatement(sql); ps.setString(1,mail.getP_name()); ps.setString(2,mail.getS_name()); ps.setInt(3,mail.getP_id()); ps.setInt(4,mail.getS_id()); ps.setString(5,mail.getContent()); ps.setString(6,mail.getTitle()); ps.setString(7,"0");//是否发送 ps.setString(8,"3");//是否读取 ps.executeUpdate(); }catch(Exception e){ b = false; e.printStackTrace(); }finally{ Sqltools.aclose(rs, ps, cnn); } return b; } }jsp页面<pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'mailbox.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <head> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/admin.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/sweetalert.css"> <link rel="stylesheet" type="text/css" href="/rccwgl/components/dtree/dtree.css"> </head> <body> <!-- tab导航列表 --> <ul id="myTab" class="nav nav-tabs"> <li class="active"><a href="#home" data-toggle="tab" class="btn btn-primary">邮件列表</a></li> <li><a href="#ios" data-toggle="tab" class="btn btn-success">未读邮件</a></li> <li><a href="#gz" data-toggle="tab" class="btn btn-warning">已读邮件</a></li> <li><a href="#cg" data-toggle="tab" class="btn btn-info">草稿列表</a></li> <li class="dropdown"> <a href="#" id="myTabDrop1" class="dropdown-toggle btn-danger" data-toggle="dropdown">功能开发中 <b class="caret"></b> </a> <ul class="dropdown-menu" role="menu" aria-labelledby="myTabDrop1"> <li><a href="#jmeter" tabindex="-1" data-toggle="tab">开发一</a></li> <li><a href="#ejb" tabindex="-1" data-toggle="tab">开发二</a></li> </ul> </li> </ul> <!-- 邮件内容显示 --> <div id="myTabContent" class="tab-content"> <!-- 邮件列表 --> <div class="tab-pane fade in active" id="home"> <!-- <form method="post" action="R_costServlet?action=plpay_a" onsubmit="return pldelete();">--> <div class="mainContent" > <input id="pl" type="button" class="btn btn-info" style="margin-top:50px;" onclick="pl()" value="批量删除"> <button class="btn btn-primary btn-bg pull-right" style="margin-top:50px;" data-toggle="modal" data-target="#myModal" onclick="addmail()">写邮件</button> <div class="row"> <div class="content"> <table class="table table-hover table-bordered"> <thead> <tr> <td align="left"><input type="checkbox" name="qx" onclick="quanxuan()" >全选</td> <td>主题</td> <td>发件人</td> <td>邮件内容</td> <td>接收时间</td> <td>是否读取</td> <td>操作</td> </tr> </thead> <tbody id="list"></tbody> </table> <div id="pageinfo" style="height:200px;"></div> </div> </div> </div> <!--</form> --> </div> <!-- 未读邮件 --> <div class="tab-pane fade" id="ios"> <!-- <form method="post" action="R_costServlet?action=plpay_a" onsubmit="return pldelete();">--> <div class="mainContent" > <input type="submit" value="批量删除" class="btn btn-info" style="margin-top:50px;"> <input type="submit" value="写邮件" class="btn btn-primary btn-bg pull-right" style="margin-top:50px;"> <div class="row"> <div class="content"> <table class="table table-hover table-bordered"> <thead> <tr> <td align="left"><input type="checkbox" name="qx" onclick="quanxuan(this)">全选</td> <td>序号</td> <td>发件人</td> <td>邮件内容</td> <td>接收时间</td> <td>是否读取</td> <td>编辑</td> </tr> </thead> <tbody id="list1"></tbody> </table> <div id="pageinfo1" style="height:200px;"></div> </div> </div> </div> <!-- </form>--> </div> <!-- 已读邮件 --> <div class="tab-pane fade" id="gz"> <!-- <form method="post" action="R_costServlet?action=plpay_a" onsubmit="return pldelete();">--> <div class="mainContent" > <input type="submit" value="批量删除" class="btn btn-info" style="margin-top:50px;"> <input type="submit" value="写邮件" class="btn btn-primary btn-bg pull-right" style="margin-top:50px;"> <div class="row"> <div class="content"> <table class="table table-hover table-bordered"> <thead> <tr> <td align="left"><input type="checkbox" name="qx" onclick="quanxuan(this)">全选</td> <td>序号</td> <td>发件人</td> <td>邮件内容</td> <td>接收时间</td> <td>是否读取</td> <td>编辑</td> </tr> </thead> <tbody id="list2"></tbody> </table> <div id="pageinfo2" style="height:200px;"></div> </div> </div> </div> <!-- </form>--> </div> <div class="tab-pane fade" id="jmeter"> <div class="mainContent" > <p>jMeter 是一款开源的测试软件。它是 100% 纯 Java 应用程序,用于负载和性能测试。</p> </div> </div> <div class="tab-pane fade" id="ejb"> <p>Enterprise Java Beans(EJB)是一个创建高度可扩展性和强大企业级应用程序的开发架构,部署在兼容应用程序服务器(比如 JBOSS、Web Logic 等)的 J2EE 上。 </p> </div> <!-- 草稿列表 --> <div class="tab-pane fade" id="cg"> <!-- <form method="post" action="R_costServlet?action=plpay_a" onsubmit="return pldelete();">--> <div class="mainContent" > <input type="submit" value="批量删除" class="btn btn-info" style="margin-top:50px;"> <input type="submit" value="写邮件" class="btn btn-primary btn-bg pull-right" style="margin-top:50px;"> <div class="row"> <div class="content"> <table class="table table-hover table-bordered"> <thead> <tr> <td align="left"><input type="checkbox" name="qx" onclick="quanxuan(this)">全选</td> <td>序号</td> <td>发件人</td> <td>邮件内容</td> <td>接收时间</td> <td>是否读取</td> <td>编辑</td> </tr> </thead> <tbody id="list3"></tbody> </table> <div id="pageinfo3" style="height:200px;"></div> </div> </div> </div> <!-- </form>--> </div> <!-- --> </div> <!-- 写邮件的弹出框 --> <div id="alls" style=""> <div class="container"> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" > <div class="modal-dialog" role="document" style="width:800px"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">写邮件</h4> </div> <div class="modal-body"> <div class="form-group"> <label for="txt_departmentname">主题</label> <input type="text" name="txt_departmentname" class="form-control" id="zhuti" placeholder="部门名称"> </div> <div class="form-group"> <div id="treediv" style="display:none;overflow:scroll; width: 150px;height:300px; padding: 5px;background: #fff;color: #fff;border: 1px solid #cccccc" > <input type="text" name="txt_parentdepartment" class="form-control" id="menu_parent_name"> </div> </div> <div class="form-group"> <label for="txt_departmentname">收件人</label> <input type="text" name="txt_departmentname" class="form-control" id="setvalue" placeholder="部门名称"> <input type="hidden" id="menu_parent" name="menu_parent"><!-- 父菜单id --> </div> <div class="form-group"> <label for="txt_statu">邮件内容</label> <textarea rows="8" class="form-control" id="editor_id" name="content"></textarea> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-success" id="send" data-dismiss="modal"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>发送</button> <button type="button" class="btn btn-default" id="btn_close" data-dismiss="modal"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>关闭</button> <button type="button" id="btn_submit" class="btn btn-primary" data-dismiss="modal"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>保存</button> </div> </div> </div> </div> </div> </div> <script src="/rccwgl/js/jquery-3.1.0.min.js"></script> <script src="/rccwgl/js/bootstrap.min.js"></script> <script type="text/javascript" src="js/bootstrap-paginator.js"></script> <script type="text/javascript" src="js/sweetalert.min.js"></script> <script type="text/javascript" src="js/sweetalert-dev.js"></script> <script src="/rccwgl/mailbox/js/mailbox.js"></script> <script type="text/javascript" charset="utf-8" src="mailbox/kindeditor-4.1.10/kindeditor.js"></script> <script charset="utf-8" src="mailbox/kindeditor-4.1.10/lang/zh_CN.js"></script> <script type="text/javascript" charset="utf-8" src="/rccwgl/mailbox/js//kdreply.js"></script> <SCRIPT type="text/javascript" src="/rccwgl/components/dtree/dtree.js"></SCRIPT> </body> </html>js<pre name="code" class="html">$(function(){//初始化页面 page1(); initTree(); shouwtree(); $('#treediv').mouseleave(function(){//在鼠标离开选择树的时候,选择书影藏 //alert("进来了"); $("#treediv").hide(); }); }); function Delete(mid){ swal({ title: "你确定要进行该操作?", text: "You will not be able to recover this imaginary file!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "是的, 删除!", cancelButtonText: "不, 取消", closeOnConfirm: false, closeOnCancel: false }, function(isConfirm){ if (isConfirm) { var action = "delete"; $.ajax({ type : "post", url : "MailBoxServlet", datatype:'json', data:{action:action,id:mid,a:Math.random()}, success : function(data){ var d= eval('('+data+')'); if(d.biaozhi==true){ swal("删除!", "删除成功", "success"); //window.location.reload();这种方式无法显示成功提示 $("#list").empty(); page1(); }else{ swal("Deleted!", "删除失败", "error"); } } }); } else { swal("", "你已经取消的该操作 ", "error"); } }); } function Edit(mid){ alert(mid); } function pl(){//批量删除 var checkedList = new Array(); var ids = ""; if($("input[name='deleteCusersid']:checked").length>0){ $("input[name='deleteCusersid']").each(function(){ if($(this).prop("checked")){//如果要未选中的 ==false 就可以了 //ids += $(this).val()+","; checkedList.push($(this).val()); } }); swal({ title: "你确定要删除这"+checkedList.length+"行?", //text: "You will not be able to recover this imaginary file!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "是的, 确定删除!", cancelButtonText: "不, 取消", closeOnConfirm: false, closeOnCancel: false }, function(isConfirm){ if (isConfirm) { var action = "pldelete"; $.ajax({ type : "post", url : "MailBoxServlet", datatype:'json', data:{action:action,a:Math.random(),deleteidlist:checkedList.toString()}, success : function(data){ var d= eval('('+data+')'); if(d.biaozhi==true){ swal("删除!", "批量删除成功", "success"); $("input[name='deleteCusersid']").prop("checked",false);//将其他有对号的清除 $("input[name='qx']").prop("checked",false);//将全选的对号清除 $("#list").empty(); page1(); //window.location.reload(); }else{ swal("Deleted!", "删除失败", "error"); } } }); } else { swal("", "你已经取消的该操作 ", "error"); $("input[name='qx']").prop("checked",false); $("input[name='deleteCusersid']").prop("checked",false); } }); }else{ swal("失败!", "你必须选择至少一行进行该操作!", "info"); } } function quanxuan(){//全选与全不选 if($("input[name='qx']").prop("checked")){ var checkbox = $("input[name='deleteCusersid']"); checkbox.prop("checked",true); }else{ var checkbox = $("input[name='deleteCusersid']"); checkbox.prop("checked",false); } } function addmail(){//写邮件 $("#btn_submit").click(function(){ var id = $("#menu_parent").val(); var zhuti = $("#zhuti").val();//获取主题 var content = $("#editor_id").val();//获取内容 if(zhuti==""||id==""){ if(zhuti==""){ swal("主题不能为空"); }else{ swal("收件人不能为空"); } return false; }else{ var action = "save"; $.ajax({ url: "MailBoxServlet", data : 'json', type : "post", data :{action:action,id :id,content :content,zhuti :zhuti,a : Math.random()}, success : function(data){ if(data !=null){ var d= eval('('+data+')'); if(d.biaozhi){ swal("邮件编写成功"); }else{ swal("邮件编写失败"); } } $("#zhuti").val(""); //关闭的时候将所有的值制空 $("#setvalue").val(""); KindEditor.instances[0].html('');//专门的将textarea值置空0表示第一个KindEditor编辑器对象 $("#list").empty();//置空 page1();//异步刷新页面 } }); } //swal("关闭"); }); $("#btn_close").click(function(){ $("#zhuti").val(""); //关闭的时候将所有的值制空 $("#setvalue").val(""); KindEditor.instances[0].html('');//专门的将textarea值置空0表示第一个KindEditor编辑器对象 swal("关闭"); }); $("#send").click(function(){ swal("发送成功"); }); } function initTree(){//初始化树 var action = "tree"; mydtree = new dTree('mydtree','${pageContext.request.contextPath}/style/default/images/dtree/','no','no'); mydtree.add(0, -1, "根目录", "javascript:setvalue('0','根目录')", "根目录", "_self", true); $.ajax({ url: "MailBoxServlet", data : 'json', type : "post", data :{action:action,a : Math.random()}, success : function(data){ if(data !=null){ $.each(eval("(" +data+ ")").treelist,function(index,item){ var id =item.nid; var pid = item.parentId; var nodesname = item.nodeName; mydtree.add(id,pid,nodesname,"javascript:setvalue('"+id+"','"+nodesname+"')",nodesname,"_self",false); }); //document.write(mydtree); //将树添加到指定div(jQuery) $("#treediv").html(mydtree.toString()); } } }); } function shouwtree(){ $("#setvalue").click(function(){ $("#treediv").show(); }); } function setvalue(id,name){ $("#setvalue").val(name); $("#menu_parent").val(id); $("#treediv").hide(); } function page1(){ var pageNumber = 1;//默认初始页为第一页 var action = "page";//定义一个要进入的条件 $.ajax({//ajax请求 url: "MailBoxServlet", data :'json', type: "Post", data:{action:action,pageNumber:pageNumber,a:Math.random()},//参数 success : function(data){//请求成功的方法 if(data !=null){ $.each(eval("(" + data + ")").mailbox, function (index, item) { //遍历返回的json var html = "<tr><td><input type='checkbox' name='deleteCusersid' value='"+item.mid+"'/></td><td>" + item.title + "</td><td>" + item.p_name + "</td><td>" + item.content + "</td><td>" +item.r_time+ "</td><td>" +item.status+ "</td><td>"; m1 ="编辑"; m2="删除"; html2="<div class='btn-group'><button onclick='Edit("+item.mid+")' class='btn btn-info btn-sm' ><span class='glyphicon glyphicon-edit icon-white'></span> " +m1+"</button>" +"<button onclick='Delete("+item.mid+")' class='btn btn-danger btn-sm' ><span class='glyphicon glyphicon-trash icon-white'></span> " +m2+"</button>" +"</div></td></tr>"; html+= html2; $("#list").append(html); }); var pageCount = eval("(" + data + ")").Page[0].totalPage; //取到pageCount的值(把返回数据转成object类型) var currentPage = eval("(" + data + ")").Page[0].currentPage; //得到urrentPage var options = { bootstrapMajorVersion: 2, //版本 currentPage: currentPage, //当前页数 totalPages: pageCount, //总页数 //numberOfPages:10, itemTexts: function (type, page, current) { switch (type) { case "first": return "首页"; case "prev": return "上一页"; case "next": return "下一页"; case "last": return "末页"; case "page": return page; } }, onPageClicked: function (event, originalEvent, type, page) { $("#list").empty(); $.ajax({ url: "MailBoxServlet?pageNumber=" + page, type: "Post", data:{action:"page",a:Math.random()}, success: function (data1) { if (data1 != null) { $.each(eval("(" + data1 + ")").mailbox, function (index, item) { //遍历返回的json var html = "<tr><td><input type='checkbox' name='deleteCusersid' value='"+item.mid+"'/></td><td>" + item.mid + "</td><td>" + item.p_name + "</td><td>" + item.content + "</td><td>" +item.r_time+ "</td><td>" +item.status+ "</td><td>"; m1 ="编辑"; m2="删除"; html2="<div class='btn-group'><button onclick='Edit("+item.mid+")' class='btn btn-info btn-sm' ><span class='glyphicon glyphicon-edit icon-white'></span> " +m1+"</button>" +"<button onclick='Delete("+item.mid+")' class='btn btn-danger btn-sm' ><span class='glyphicon glyphicon-trash icon-white'></span> " +m2+"</button>" +"</div></td></tr>"; html+= html2; $("#list").append(html); }); } } }); } }; $('#pageinfo').bootstrapPaginator(options); } } }); }以上所述是小编给大家介绍的BootStrap实现邮件列表的分页和模态框添加邮件的功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

什么是组件?组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。本篇资料是小编参考官方文档的基础上整理的一篇更加细致的说明,代码更多更全,非常适合新手学习。官方文档:http://cn.vuejs.org/guide/components.html#u52A8_u6001_u7EC4_u4EF6组件——杂项详细介绍如下所示:①组件和v-for简单来说,就是组件被多次复用;例如表格里的某一行,又例如电商的商品橱窗展示(单个橱窗),都可以成为可以被复用的组件;只要编写其中一个作为组件,然后使数据来源成为一个数组(或对象,但个人觉得最好是数组),通过v-for的遍历,组件的每个实例,都可以获取这个数组中的一项,从而生成全部的组件。而数据传输,由于复用,所以需要使用props,将遍历结果i,和props绑定的数据绑定起来,绑定方法同普通的形式,在模板中绑定。示例代码:<div id="app"> <button @click="toknowchildren">点击让子组件显示</button> <table> <tr> <td>索引</td> <td>ID</td> <td>说明</td> </tr> <tr is="the-tr" v-for="i in items" v-bind:id="i" :index="$index"></tr> </table> </div> <script> var vm = new Vue({ el: '#app', data: { items: [1, 2, 3, 4] }, methods: { toknowchildren: function () { //切换组件显示 console.log(this.$children); } }, components: { theTr: { //第一个子组件 template: "<tr>" + "<td>{{index}}</td>" + "<td>{{id}}</td>" + "<td>这里是子组件</td>" + "</tr>", props: ['id','index'] } } }); </script> 说明:【1】记得将要传递的数据放在props里!【2】将index和索引$index绑定起来,因为索引从0开始,因此索引所在列是从0开始;id是和遍历items的i绑定在一起的,因此id从1开始。【3】可以在父组件中,通过this.$children来获取子组件(但是比较麻烦,特别是组件多的时候,比较难定位);②编写可复用的组件:简单来说,一次性组件(只用在这里,不会被复用的)跟其他组件紧密耦合是可以的,但是,可复用的组件应当定义一个清晰的公开接口。(不然别人怎么用?)可复用的组件,基本都是要和外部交互的,而一个组件和外部公开的交互接口有:【1】props:允许外部环境数据传递给组件;【2】事件:允许组件触发外部环境的action,就是说通过在挂载点添加v-on指令,让子组件的events触发时,同时触发父组件的methods;【3】slot:分发,允许将父组件的内容插入到子组件的视图结构中。如代码:<div id="app"> <p>这是第一个父组件</p> <widget :the-value="test" @some="todo"> <span>【第一个父组件插入的内容】</span> </widget> </div> <div id="app2"> <p>这是第二个父组件</p> <widget @some="todo"> </widget> </div> <script> Vue.component("widget", { template: "<button @click='dosomething'><slot></slot>这是一个复用的组件,点击他{{theValue}}</button>", methods: { dosomething: function () { this.$emit("some"); } }, events: { some: function () { console.log("widget click"); } }, props: ['theValue'] }) var vm = new Vue({ el: '#app', data: { test: "test" }, methods: { todo: function () { console.log("这是第一个父组件") } } }); var vm_other = new Vue({ el: '#app2', data: { name: "first" }, methods: { todo: function () { console.log("这是另外一个父组件") } } }); </script> 说明:【1】在第一个父组件中使用了分发slot,使用了props来传递值(将test的值传到子组件的theValue之中);【2】在两个组件中,子组件在点击后,调用methods里的dosomething方法,然后执行了events里的some事件。又通过挂载点的@some=”todo”,将子组件的some事件和父组件的todo方法绑定在一起。因此,点击子组件后,最终会执行父组件的todo方法。【3】更改父组件中,被传递到子组件的值,会同步更改子组件的值(即二者会数据绑定);③异步组件:按照我的理解,简单来说,一个大型应用,他有多个组件,但有些组件无需立即加载,因此被分拆成多个组件(比如说需要立即加载的,不需要立即加载的);需要立即加载的,显然放在同一个文件中比较好(或者同一批一起请求);而不需要立即加载的,可以放在其他文件中,但需要的时候,再ajax向服务器请求;这些后续请求的呢,就是异步组件;做到这种异步功能的,就是Vue.js的功能——允许将组件定义为一个工厂函数,动态解析组件的定义。可以配合webpack使用。至于如何具体使用,我还不太明白,教程中写的不清,先搁置等需要的时候来研究。链接:http://cn.vuejs.org/guide/components.html#u5F02_u6B65_u7EC4_u4EF6④资源命名的约定:简单来说,html标签(比如div和DIV是一样的)和特性(比如要写成v-on这样的指令而不是vOn)是不区分大小写的。而资源名往往是写成驼峰式(比如camelCase驼峰式),或者单词首字母都大写的形式(比如PascalCase,我不知道该怎么称呼这个,不过这样写很少的说)。Vue.component("myTemplate", {//......略})Vue.js可以自动识别这个并转换,<my-template></my-template>以上那个模板可以自动替换这个标签。⑤递归组件:简单来说,递归组件就是组件在自己里内嵌自己的模板。组件想要递归,需要name属性,而Vue.component自带name属性。大概样子是这样的,<div id="app"> <my-template></my-template> </div> <script> Vue.component("myTemplate", { template: "<p><my-template></my-template></p>" }) 这种是无限递归,肯定是不行的。因此,需要控制他递归的层数,例如通过数据来控制递归,当数据为空时,则停止递归。示例代码如下:<ul id="app"> <li> {{b}} </li> <my-template v-if="a" :a="a.a" :b="a.b"></my-template> </ul> <script> Vue.component("myTemplate", { template: '<ul><li>{{b}}</li><my-template v-if="a" :a="a.a" :b="a.b"></my-template></ul>', props: ["a", "b"] }) var data = { a: { a: { a: 0, b: 3 }, b: 2 }, b: 1 } var vm = new Vue({ el: '#app', data: data, methods: { todo: function () { this.test += "!"; console.log(this.test); } } }); </script> 说明:【1】向下传递时,通过props传递a的值和b的值,其中a的值作为递归后组件的a和b的值的数据来源;然后判断传递到递归后的组件的a的值是否存在,如果存在则继续递归;如果a的值不存在,则停止递归。⑥片断实例:简单来说,所谓片断实例,就是组件的模板不是处于一个根节点之下:片断实例代码:Vue.component("myTemplate", { template: '<div>1</div>' + '<div>2</div>', }) 非片断实例:Vue.component("myTemplate", { template: '<div>' + '<div>1</div>' + '<div>2</div>' + '</div>', }) 片断实例的以下特性被忽略:【1】组件元素上的非流程控制指令(例如写在挂载点上的,由父组件控制的v-show指令之类,但注意,v-if属于流程控制指令);【2】非props特性(注意,props不会被忽略,另外props是写在挂载点上的);【3】过渡(就是transition这个属性,将被忽略);更多的参照官方文档:http://cn.vuejs.org/guide/components.html#u7247_u65AD_u5B9E_u4F8B⑦内联模板参照:http://cn.vuejs.org/guide/components.html#u5185_u8054_u6A21_u677F以上所述是小编给大家介绍的Vuejs第十三篇之组件——杂项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

焦点访谈

最新最热的文章

更多 >

COPYRIGHT (©) 2017 Copyright ©2017 腾博会官网 网站地图

联系我们

827570882

扫描二维码分享到微信