jquery选择器,获取id下的class的第一个 tr

$("#itemkindTable .itemkindTr tr:first input").each(
function(key,param){
alert(param);
}
)

                需要获取 id="itemkindTable" 且 class="itemkindTr" 的第一个tr 下的所有input。
                我按照上面的写法是无效的。
                有没有什么其它的方法来获取呢。

4个回答

      var itemkindTr = $("#itemkindTable .itemkindTr");
                var first = itemkindTr[0];
                var inputList = $(first).find("input");
                $(inputList).each(
                        function(key,param){
                            alert($(param).val());
                        }
                )       

            测试后要用这种方式  #itemkindTable .itemkindTr  选择器获取到table下所有class为itemkindTr 的元素,会得到一个数组,然后获取数组的第一个。
yi_shen_zhi_nu
野花一片 有没有什么方法不用数组的方式来实现
9 个月之前 回复
yi_shen_zhi_nu
野花一片 上面的特点在于,只取table中 指定class的tr,并取其中第一个
9 个月之前 回复
January $100
    function huoqu(){
    var aa= $("#div2 .divTable tr:first ");
    var inputlist = $(aa).find('input');
    $(inputlist).each(
            function(key,param){
            alert($(param).val());
            })
}
qq_38394249
⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣ 回复: 你也可以动态的给每一行tr添加id都是可以的
9 个月之前 回复
qq_38394249
⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣ 回复野花一片: 你可以在选择是 不用tr:first 就是获取所有的tr了呀 或者有.find('tr')不就是所有的tr了吗
9 个月之前 回复
yi_shen_zhi_nu
野花一片 老哥,感谢提供思路
9 个月之前 回复

Jquery中相同的ID号不能用$()获得,即使是$().each()也不能获得所有的ID相同的元素,只能获得第一个匹配的元素。
最好通过class获取,类似于class="mylist itemkindTr"这样的效果

asd1
asd2
asd3
    </div>
    <script>
        $(function(){
            alert($("#sss .sssss tr:first").html())
        })
    </script>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jquery 选择元素问题 急
``` <tr class="odd"> <td>106450</td> <td>音乐盒</td> <td><input type="hidden" value="106450" /> <a href="javascript:detail()"><img src="images/search.png" /></a></td> </tr> <tr class="even"> <td>106451</td> <td>播放器</td> <td><input type="hidden" value="106451" /> <a href="javascript:detail()"><img src="images/search.png" /></a></td> </tr> function detail() { var pid = $(this).parent().children().eq(0).val(); // $(this).parents("tr").children().eq(2).children().eq(0).val(); } ``` 我要点击音乐盒那个<tr>里的图片链接, <a href="javascript:detail()">这个,然后我想获取音乐盒里<input type="hidden" value="106450" /> 的value用做ID,用jquery怎么获取呀,没怎么学jquery,想试着写写怎么写不出来,求助!!谢谢!! 上面写的js代码我感觉是${this}出了问题,不太懂,应该怎么写?
jquery初学,获取button失败,name属性获取不到对象,各位大神来看下,帮忙解决!!!
这是我的代码(一个简单的jquery的测试): <br /> <br />&lt;%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&gt; <br />&lt;% <br />String path = request.getContextPath(); <br />String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; <br />%&gt; <br /> <br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; <br />&lt;html&gt; <br />&nbsp; &lt;head&gt; <br />&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;title&gt;My first jquery test project&lt;/title&gt; <br />&nbsp;&nbsp;&nbsp; <br /> &lt;meta http-equiv="pragma" content="no-cache"&gt; <br /> &lt;meta http-equiv="cache-control" content="no-cache"&gt; <br /> &lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br /> &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt; <br /> &lt;meta http-equiv="description" content="This is my page"&gt; <br /> &lt;!-- <br /> &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt; <br /> --&gt; <br /> &lt;script type="text/javascript" src="jquery-latest.js"&gt;&lt;/script&gt; <br /> &lt;script type="text/javascript"&gt; <br /> /* <br /> $()jquery的选择器,创建一个jquery对象,click触发事件,调用js方法function <br /> */ <br /> $(document).ready(function(){ <br /> $("a").click(function(){ <br /> alert("Hello World!"); <br /> }); <br /> /*加CSS样式。。。未遂 <br /> &nbsp; 选择方式#类似于css样式选择器! <br /> &nbsp; 这里的red为已经定义好的css样式类名 <br /> */ <br /> $("#orderUl li:even").addClass("red"); <br /> <br /> /*鼠标覆盖触发事件*/ <br /> $("#orderUl li:last").hover(function(){ <br /> $(this).addClass("green"); <br /> },function(){ <br /> $(this).removeClass("green"); <br /> }); <br /> <br /> /*find寻找当前标签的子标签,each遍历所有选中的子标签触发事件 <br /> html()是为了获取每个li的html文本,而设置li的html文本是在本身html文本的基础上追加内容! <br /> .html()是获取文本,而.html("xxxxxxxxxxxx")是为了赋值!!! <br /> <br /> */ <br /> $("#firstUl").find("li").each(function(i){ <br /> $(this).html($(this).html()+"I don't understand!&nbsp; "+i); <br /> }); <br /> /*测试$(this).html的含义*/ <br /> $("#secondUl").find("li").eack(function(i){ <br /> $(this).html("这是何解?"); <br /> }); <br /> <br /> /*在没有jquery覆盖的dom对象上加call方法,不甚明白!!!???*/ <br /> $("button#Cr").click(function(){ <br /> alert("-------------"); <br /> $("#myform")[0].reset(); <br /> }); <br /> <br /> /*实在不知道什么原因,找个button测试下*/ <br /> $("button#testButton").click(function(){ <br /> alert("这是为什么呢?"); <br /> }); <br /> <br /> /*filter()和not() <br /> 键→值 <br /> */ <br /> $("li").not("[ul]").css("border","1px solid black").css("color","blue"); <br /> <br /> $("a[@name]").background("green"); <br /> <br /> }); <br /> &lt;/script&gt; <br /> &lt;script type="text/javascript"&gt; <br /> function nan(){ <br /> alert("2222"); <br /> } <br /> &lt;/script&gt; <br /> &lt;style type="text/css"&gt; <br /> .red{ <br /> background-color:red; <br /> } <br /> .green{ <br /> background-color:green; <br /> } <br /> &lt;/style&gt; <br /> <br />&nbsp; &lt;/head&gt; <br />&nbsp; <br />&nbsp; &lt;body style="text-align:center;"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;a href="#"&gt;弹出Hello World!&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;a name="a1" href="#"&gt;弹出Hello World!&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;a href="#"&gt;弹出Hello World!&lt;/a&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;ul id="orderUl"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;背景颜色为红色!!!&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;背景颜色为红色!!!&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;背景颜色为红色!!!&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/ul&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;ul id="firstUl"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/ul&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;ul id="secondUl"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;ul&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;111111111111&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;111111111111&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;111111111111&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/ul&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;222222222222&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;li&gt;222222222222&lt;/li&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/ul&gt; <br />&nbsp;&nbsp;&nbsp; &lt;br/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;form id="myform" action="" method="post"&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;table&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;tr&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;td&gt; <br /> &lt;input type="text"/&gt; <br /> &lt;/td&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;/tr&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;tr&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;td&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;input id="Cr" type="button" value="清&nbsp; 空" /&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;/td&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;/tr&gt; <br /> &nbsp;&nbsp;&nbsp; &lt;/table&gt; <br /> &lt;/form&gt; <br /> &lt;br/&gt; <br /> &lt;input type="button" value="测&nbsp; 试" id="testButton" name="testButton"/&gt; <br />&nbsp; &lt;/body&gt; <br />&lt;/html&gt; <br /> <br /> <br />为什么我的button不能触发事件,并且按个跟name属性获得对象的方法也不行啊,帮帮我。。。谢谢啦<br/><strong>问题补充</strong><br/><div class="quote_title">2008shucheng 写道</div><div class="quote_div">$("button[name='testButton']").click(function(){ <br /> alert("弹出来了!"); <br />});</div> <br />我的好像还是不行,是不是前边某一行出问题了,就不向下走了啊?这个button#id的形式不对吗?<br/><strong>问题补充</strong><br/><div class="quote_title">風一樣的男子 写道</div><div class="quote_div"><div class="quote_title">chenkuntian 写道</div><div class="quote_div"><div class="quote_title">2008shucheng 写道</div><div class="quote_div">$("button[name='testButton']").click(function(){ <br /> alert("弹出来了!"); <br />});</div> <br />我的好像还是不行,是不是前边某一行出问题了,就不向下走了啊?这个button#id的形式不对吗?</div> <br /><pre name="code" class="javascript"> $("input[name='testButton']").bind('click',function(){alert("弹出来了!");}); </pre></div> <br />我的那个$(标签名[属性名]);类似的方法都不能用啊,为什么啊?这个与浏览器有关系吗?<br/><strong>问题补充</strong><br/><div class="quote_title">chenkuntian 写道</div><div class="quote_div"><div class="quote_title">風一樣的男子 写道</div><div class="quote_div"><div class="quote_title">chenkuntian 写道</div><div class="quote_div"><div class="quote_title">2008shucheng 写道</div><div class="quote_div">$("button[name='testButton']").click(function(){ <br /> alert("弹出来了!"); <br />});</div> <br />我的好像还是不行,是不是前边某一行出问题了,就不向下走了啊?这个button#id的形式不对吗?</div> <br /><pre name="code" class="javascript"> $("input[name='testButton']").bind('click',function(){alert("弹出来了!");}); </pre></div> <br />我的那个$(标签名[属性名]);类似的方法都不能用啊,为什么啊?这个与浏览器有关系吗?</div> <br />我用这种方法可以了:$(标签名[@属性名]);为什么啊?是不是和浏览器版本有关?还是和jquery版本有关啊?
各位大佬帮忙看看,为什么不能翻页,只显示5个数据?
``` <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="classscoreinput.aspx.cs" Inherits="School_Web.admin.score.classscoreinput" %> <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title> <asp:Literal ID="LiteralTitle" runat="server" EnableViewState="true"></asp:Literal> </title> <script language="javascript" src="/admin/js/SystemPage.js" type="text/jscript"></script> <link href="../style/green/skin.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="/admin/style/jquery/jquery.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function() { $("#topURLul").children().click(function() { $(this).siblings().removeClass().end().addClass("divURLed"); $("#mypanel").children().css("display","none"); $("#d"+ this.id).css("display",""); //alert(this.id); }); $("#topURLul").children().hover( function() { $(this).addClass("divURLon"); //akon(this); }, function() { if ($(this).attr("class") != "divURLed") { $(this).removeClass("divURLon"); } } ); }); </script> </head> <body onload="win_onLoad();"> <form id="Form1" method="post" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <div id="tbMain"> <div class="divTbg"> <div class="divTbgL"></div> <div class="divTbgInfo"> <div class="divTbgTitle"><span class="WtableTBig">成绩管理 </span></div> </div> </div> <div class="divTbgF"></div> <div class="divTNavBG" id="topURL"> <ul id="topURLul"> <li class="divURLed" id="div1"> <div><img src="../style/green/images/mini_icons_046.gif" width="10" height="10" /><span class="tableTBig">课程基本信息</span></div> </li> <li id="div2"> <div><img src="../style/green/images/mini_icons_046.gif" width="10" height="10" /><span class="tableTBig">成绩汇总表</span></div> </li> <li id="div3"> <div><img src="../style/green/images/mini_icons_046.gif" width="10" height="10" /><span class="tableTBig">辅助计算器</span></div> </li> <li id="div4"> <div><img src="../style/green/images/mini_icons_046.gif" width="10" height="10" /><span class="tableTBig">帮助说明</span></div> </li> </ul> </div> <div id="mypanel"> <div class="divInfo" id="ddiv1"> <div class="divInfoTop"> <div class="listLeft"> <ul> <li> <div><img src="../style/green/images/basic.gif"/></div> </li> <li><span class="tableTBig">课程基本信息</span></li> </ul> </div> </div> <div class="divInfoContext"> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="SkyTableLine"> <tr> <td align="center" class="SkyTDTopLine"> 开课编号 </td> <td align="center" class="SkyTDTopLine"> 课程名称 </td> <td align="center" class="SkyTDTopLine"> 开课院系 </td> <td align="center" class="SkyTDTopLine"> 开课班级 </td> <td align="center" class="SkyTDTopLine"> 开课学期 </td> <td align="center" class="SkyTDTopLine"> 开课教师 </td> <td align="center" class="SkyTDTopLine"> 课程学时 </td> <td align="center" class="SkyTDTopLine"> 课程学分 </td> </tr> <tr> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal1" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal2" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal3" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal4" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal5" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal6" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal7" runat="server"></asp:Literal> </td> <td align="center" class="SkyTDLine"><asp:Literal ID="Literal8" runat="server"></asp:Literal> </td> </tr> </table> </div> </div> <div class="divInfo" id="ddiv2"> <div class="divInfoTop"> <div class="listLeft"> <ul> <li> <div><img src="../style/green/images/basic.gif"/></div> </li> <li><span class="tableTBig">成绩汇总表</span></li> </ul> </div> </div> <div class="divInfoContext"> <div class="divSave"> <asp:Button ID="btnInit" runat="server" Text="成绩初始化" CssClass="SkyButtonFocus" OnClick="btnInit_Click" /> <asp:Button ID="btnSync" runat="server" Text="成绩同步" CssClass="SkyButtonFocus" OnClick="btnSync_Click" /> <asp:Button ID="btnSave" runat="server" Text="成绩保存" CssClass="SkyButtonFocus" OnClick="btnSave_Click" /> </div> <div style="font: 2px; line-height: 2px;"> &nbsp;</div> <asp:GridView ID="gvInfo" runat="server" AutoGenerateColumns="False" BorderStyle="None" CellPadding="1" CellSpacing="1" GridLines="None" Width="100%" CssClass="Ntable" HorizontalAlign="Center" OnRowDataBound="gvInfo_RowDataBound" PageSize="12" > <RowStyle CssClass="SkyTDLine" HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" CssClass="SkyTDTopLine"></HeaderStyle> <Columns> <asp:BoundField DataField="id" HeaderText="序号" /> <asp:BoundField HeaderText="课程名称" DataField="CourseName" /> <asp:BoundField HeaderText="学生学号" DataField="UserID" /> <asp:BoundField HeaderText="学生名称" DataField="UserName" /> <asp:TemplateField HeaderText="平时成绩"> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ResultsPS") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="作业成绩"> <ItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("ResultsZY") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="期中成绩"> <ItemTemplate> <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("ResultsQZ") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="期末成绩"> <ItemTemplate> <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("ResultsQM") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="综合成绩"> <ItemTemplate> <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("ResultsZH") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="是否补考"> <ItemTemplate> <asp:CheckBox ID="chkIsMakeup" runat="server" Text="补考" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="补考成绩"> <ItemTemplate> <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("ResultsMakeup") %>' MaxLength="5" Width="50px"></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </td> </tr> </table> <div class="divInfoRight"> <webdiyer:AspNetPager ID="Pager" runat="server" UrlPaging="True" Visible="True" OnPageChanged="Pager_PageChanged" ShowNavigationToolTip="True" AlwaysShow="True"> </webdiyer:AspNetPager> </div> </div> </div> <div class="divInfo" id="ddiv3"> <div class="divInfoTop"> <div class="listLeft"> <ul> <li> <div><img src="../style/green/images/basic.gif"/></div> </li> <li><span class="tableTBig">辅助计算器</span></li> </ul> </div> </div> <div class="divInfoContext"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100" align="center" class="SkyTDTopLine"> 源成绩 </td> <td class="SkyTDLine"><asp:DropDownList ID="drpSelect" runat="server"> <asp:ListItem Value="1">平时成绩</asp:ListItem> <asp:ListItem Value="2">作业成绩</asp:ListItem> <asp:ListItem Value="3">期中成绩</asp:ListItem> <asp:ListItem Value="4">期末成绩</asp:ListItem> <asp:ListItem Value="5">综合成绩</asp:ListItem> <asp:ListItem Value="6">补考成绩</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td align="center" class="SkyTDTopLine"> 目标成绩 </td> <td class="SkyTDLine"><asp:RadioButton ID="rad1" runat="server" Checked="True" GroupName="rad" Text="普通设置" /> = <asp:TextBox ID="txt1" runat="server" MaxLength="3" Width="40px">100</asp:TextBox> (源成绩直接复制成文本中的成绩)<br /> <asp:RadioButton ID="rad2" runat="server" GroupName="rad" Text="普通复制" /> = <asp:DropDownList ID="drpSelect0" runat="server"> <asp:ListItem Value="1">平时成绩</asp:ListItem> <asp:ListItem Value="2">作业成绩</asp:ListItem> <asp:ListItem Value="3">期中成绩</asp:ListItem> <asp:ListItem Value="4">期末成绩</asp:ListItem> <asp:ListItem Value="5">综合成绩</asp:ListItem> <asp:ListItem Value="6">补考成绩</asp:ListItem> </asp:DropDownList> (源成绩直接复制到目标成绩中)<br /> <asp:RadioButton ID="rad3" runat="server" GroupName="rad" Text="比例复制" /> = <asp:TextBox ID="txt2" runat="server" MaxLength="3" Width="40px">50</asp:TextBox> %* <asp:DropDownList ID="drpSelect1" runat="server"> <asp:ListItem Value="1">平时成绩</asp:ListItem> <asp:ListItem Value="2">作业成绩</asp:ListItem> <asp:ListItem Value="3">期中成绩</asp:ListItem> <asp:ListItem Value="4">期末成绩</asp:ListItem> <asp:ListItem Value="5">综合成绩</asp:ListItem> <asp:ListItem Value="6">补考成绩</asp:ListItem> </asp:DropDownList> (源成绩乘以百分之文本比例复制到目标成绩)<br /> <asp:Button ID="btnSaveInfo" runat="server" Text="成绩保存" CssClass="SkyButtonFocus" OnClick="btnSaveInfo_Click" /> </td> </tr> </table></td> </tr> <tr> <td><br /> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100" align="center" class="SkyTDLine"> 综合计算 </td> <td class="SkyTDLine"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" class="SkyTDTopLine"> 平时成绩 </td> <td align="center" class="SkyTDTopLine"> 作业成绩 </td> <td align="center" class="SkyTDTopLine"> 期中成绩 </td> <td align="center" class="SkyTDTopLine"> 期末成绩 </td> <td align="center" class="SkyTDTopLine"> 综合成绩 </td> </tr> <tr> <td align="center" class="SkyTDLine"><asp:TextBox ID="txt3" runat="server" MaxLength="3" Width="40px">20</asp:TextBox> %+ </td> <td align="center" class="SkyTDLine"><asp:TextBox ID="txt4" runat="server" MaxLength="3" Width="40px">30</asp:TextBox> %+ </td> <td align="center" class="SkyTDLine"><asp:TextBox ID="txt5" runat="server" MaxLength="3" Width="40px">50</asp:TextBox> %+ </td> <td align="center" class="SkyTDLine"><asp:TextBox ID="txt6" runat="server" MaxLength="3" Width="40px">30</asp:TextBox> %= </td> <td align="center" class="SkyTDLine"><asp:Button ID="btnSaveInfoC" runat="server" Text="成绩保存" CssClass="SkyButtonFocus" OnClick="btnSaveInfoC_Click" /> </td> </tr> </table></td> </tr> </table></td> </tr> </table> </div> </div> <div class="divInfo" id="ddiv4"> <div class="divInfoTop"> <div class="listLeft"> <ul> <li> <div><img src="../style/green/images/basic.gif"/></div> </li> <li><span class="tableTBig">帮助说明</span></li> </ul> </div> </div> <div class="divInfoContext"> <table width="100%" border="0" cellpadding="0" cellspacing="1" class="SkyTDLine"> <tr> <td class="SkyTDLine">&nbsp; 1、您第一次进入一个课程的成绩输入页面需要进行初始化,也就是点击初始化按钮;<br /> 2、当您增加或者删除了选择课程的班级中的学生信息,需要进行同步成绩操作,把新加的学生的成绩同步到成绩列表;<br /> 3、成绩修改完毕后需要保存,否则操作将不进入数据库;<br /> 4、辅助计算器可以帮助您快速的输入成绩; </td> </tr> </table> </div> </div> </div> </div> <asp:Literal ID="LiteralScript" runat="server" EnableViewState="False"></asp:Literal> </ContentTemplate> </asp:UpdatePanel> <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> <ProgressTemplate> <div id="divLoading"> <img src="/admin/images/loading.gif" /> </div> </ProgressTemplate> </asp:UpdateProgress> </form> </body> </html> ``` 有十个数据但是只显示5个,而且只有一页,zen'me'ban
通过父,子关系标签输出内容,用jQuery和js选择器两种方式,头已大,脑已炸!
``` <head> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> function jiance(obj,name){ $.post("jiance.action","yname="+name,function(result){ if($.trim(result)=="true"){ **_此处用jQuery标签关系找到紧接的收盘标签_**.html("包含违法词"); **_此处用js标签关系找到紧接的收盘标签_**.html("包含违法词"); }else{ **_此处用js标签关系找到紧接的收盘标签_.html("不包含违法词"); **_此处用js标签关系找到紧接的收盘标签_.html("不包含违法词"); } }); } </script> </head> <c:if test="${list==null}"> <c:redirect url="findallyuju" ></c:redirect> </c:if> <div class="main"> <div class="title">检测语句中是否包含违法关键词&gt;&gt;</div> <div class="content"> <table class="list" border="1px"> <tr> <td align="center">语句编号</td> <td align="center">语句内容</td> <td>点击检测</td> <td align="center">检测结果</td> </tr> <c:forEach items="${list}" var="y"> <tr> <td align="center">${y.yid}</td> <td >${y.yname}</td> <td><input name="${y.yname }" id="${y.yid}" type="button" value="点击检测" onclick="jiance(this,name)"></td> <td><span ></span></td> </tr> </c:forEach> </table> <!-- alert($.trim(result)) --> <body> </body> ```
两个JQuery问题,一个是收缩展开的代码、一个是完整全选的代码
``` <script type="text/javascript"> // 收缩展开效果 $(document).ready(function(){ $("a.click").toggle( function() { $(this).parent().next("ul").show('fast'); }, function() { $(this).parent().next("ul").hide('slow'); }); }); </script> <ul class="sortSub" id="sortSub"> <li> <a class="click"><span></span>相机配件</a> <ul id="ul1"> <li><a href="../../list.html">支架</a></li> <li><a href="../../list.html">机身附件</a></li> <li><a href="../../list.html">清洁用品</a></li> <li><a href="../../list.html">滤镜</a></li> <li><a href="../../list.html">电池-充电器</a></li> <li><a href="../../list.html">相机包</a></li> <li><a href="../../list.html">镜头</a></li> <li><a href="../../list.html">闪光灯</a></li> </ul> </li> <li> <a class="click"><span></span>手机数码配件</a> <ul> <li><a href="../../list.html">贴膜</a></li> <li><a href="../../list.html">存储卡</a></li> <li><a href="../../list.html">手机壳-保护壳</a></li> <li><a href="../../list.html">数据线</a></li> <li><a href="../../list.html">电池-充电器</a></li> <li><a href="../../list.html">移动电源</a></li> <li><a href="../../list.html">蓝牙耳机</a></li> <li><a href="../../list.html">读卡器</a></li> <li><a href="../../list.html">其他配件</a></li> </ul> </li> <li> <a class="click"><span></span>摄像摄影</a> <ul> <li><a href="../../list.html">单反相机</a></li> <li><a href="../../list.html">单电-微单相机</a></li> <li><a href="../../list.html">拍立得</a></li> <li><a href="../../list.html">摄像机</a></li> <li><a href="../../list.html">数码相机</a></li> </ul> </li> <li> <a class="click"><span></span>数码影音</a> <ul> <li><a href="../../list.html">MP3-MP4随身听</a></li> <li><a href="../../list.html">mini音响</a></li> <li><a href="../../list.html">录音笔</a></li> <li><a href="../../list.html">数码相框</a></li> <li><a href="../../list.html">耳机-耳麦</a></li> <li><a href="../../list.html">高清播放器</a></li> <li><a href="../../list.html">麦克风-话筒</a></li> </ul> </li> <li> <a class="click"><span></span>其他电子</a> <ul> <li><a href="../../list.html">学习机</a></li> <li><a href="../../list.html">对讲机</a></li> <li><a href="../../list.html">收音机</a></li> <li><a href="../../list.html">电子书</a></li> </ul> </li> </ul> ``` 这个总是点击一个展开链接,其他的就都一起展开或者收缩了。 ``` <script> $(function(){ //单独选择某一个 $("input[name='check_item']").click(function(){ var index=$("input[name='check_item']").index(this); $("input[name='check_item']").eq(index).toggleClass("checked");//伪复选 }); //全选 $("#check_all,#box_all").click(function(){ $("input[name='check_item']").attr("checked",$(this).attr("checked")); $("input[name='check_item'],#check_all,#box_all").toggleClass("checked"); }); }); $(function () { //全选或全不选 $("#box_all").click(function(){ if(this.checked){ $("#list :checkbox").attr("checked", true); }else{ $("#list :checkbox").attr("checked", false); } }); }); function allchk(){ var chknum = $("#list :checkbox").size();//选项总个数 var chk = 0; $("#list :checkbox").each(function () { if($(this).attr("checked")==true){ chk++; } }); if(chknum==chk){//全选 $("#box_all").attr("checked",true); }else{//不全选 $("#box_all").attr("checked",false); } } </script> <section class="s-list cf" id="dataList"> <div class="wrap"> <form method="post" action="order.html"> <div class="container"> <div class="cart clear"> <div class="shadow"> <table width="100%" border="0"> <tr> <td width="85%"> <h5 class="fl">购买到的产品</h5></li> </td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_all" id="check_all" > </td> </tr> </table> <div class="c_list cb"> <ul> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> <li> <table> <tr> <td width="15%"><img src="images/cart_img.jpg" width="52" height="44"></td> <td width="65%"> <p>新奇士脐橙,8斤,甜中带微</p> <p><span class="lse">¥198.00</span> <span class="pl15">数量:<input type="text" name="num" class="num"> 包</span></p> </td> <td width="10%" valign="middle"><a href="#" class="del">删除</a></td> <td width="10%"> <input type="checkbox" class="checkbox" name="check_item" id="check_item"></td> </tr> </table> </li> </ul> </div> </div> </div> </div> <div class="cart_bg"> <table width="100%" border="0"> <tr> <td width="3%"></td> <td width="25%"><input type="checkbox" class="checkbox" id="box_all"> 全选</td> <td width="49%"> <p> <span class="pl15">金额合计:</span><span class="ff6">¥198.00</span></p> </td> <td width="20%"><button class="submit">去结算</button></td> <td width="3%"></td> </tr> </table> </div> </form> </div> </section> ``` 全选这个我看不懂该怎么添加完整,判断是否全部被选中 求大神补完~~~~跪求
表格 行的单击事件为何不生效?
``` <style> .tr-click{ background-color: #EFA2A9 ; } table tr:hover{ background-color: #EFA2A9 ; } </style> <table class="table"> <tr> <td>123</td> <td>123</td> <td>123</td> </tr> <tr> <td>123</td> <td>123</td> <td>123</td> </tr> </table> <button id="btn">改变表格</button> <script type="text/javascript" src="jquery/jquery.min.js" ></script> <script type="application/javascript"> $(function(){ $("tr").click(function(){ alert('123'); $("tr").removeClass("tr-click"); $(this).addClass("tr-click"); }) $("#btn").click(function(){ var html="<tr><td>000</td><td>000</td></tr><tr><td>000</td><td>000</td></tr>"; $(".table").replaceWith("<table>"+html+"</table>"); }) }) </script> 如代码建一个表格,为表格的行设置单击事件,更换背景色,此时单击事件正常。 同时设置一个按钮,通过按钮单击事件使用replaceWith方法替换表格内容,这个时候表格行的单击事件不生效了。 百思不得其解,在浏览器查看了源代码,发现多了<tbody></tbody>标签,但是我设置的单击事件选择器是 tr ,就算多了tbody标签也不应该不生效吧,大佬们帮忙看看是怎么回事,万分感谢。 ```
点击删除的时候,能找到当前条的数据,删除
##![图片说明](https://img-ask.csdn.net/upload/201907/17/1563334595_861315.jpg) ## 这个数据不是后台给的,是选择填入的,就像录入一样 除了第一条,其它的都是模板字符串创建的,我在列表后面加入的botton,但是不知道如何获取按钮所在的这一条数据,我也写了一个方法 这是jq,,.tbody_1为模板字符串的名称 document.getElementById("botton2").onclick = function () { $(".tbody_1:eq()").remove(); }; ``` <div class="layui-input-block"> <h3 id="forms4"><span><img src="images/down.png" id="forms4_"/></span>仪器、设备及车辆清单</h3> <div id="apply3"> <table class="layui-table" lay-even="" lay-skin="row"> <colgroup> <col width="90"> <col width="140"> <col width="140"> <col width="90"> <col width="60"> <col width="140"> <col width="200"> <col width="200"> <col width="200"> <col width="70"> </colgroup> <thead> <tr style="background-color: rgb(82, 131, 223);color:#fff"> <th>序号</th> <th>类型</th> <th>仪器、设备名称</th> <th>型号</th> <th>数量</th> <th>用途</th> <th>购置日期</th> <th>检定日期</th> <th>备注</th> <th></th> </tr> </thead> <div> <tbody> <tr > <td> <div class="layui-inline"> <div class="layui-input-inline"> 1 </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <select name="quiz"> <option value="">请选择</option> <option value="接触粉尘类">接触粉尘类</option> <option value="接触物理因素类">接触化学因素类</option> <option value="接触粉尘类">接触物理因素类</option> <option value="接触物理因素类">接触生物因素类</option> <option value="接触粉尘类">接触放射因素类</option> <option value="接触物理因素类">其它类(特殊作业等)</option> </select> </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <select name="quiz"> <option value="">请选择</option> <option value="三联式观片灯">三联式观片灯</option> <option value="心电图机">心电图机</option> </select> </div> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="model" lay-verify="" autocomplete="off" class="layui-input"> </div> </div> </td> <td>1</td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="aim" lay-verify="" autocomplete="off" class="layui-input"> </div> </div> </td> <td> <div class="layui-input-inline"> <input type="text" name="buyed" id="buyed" lay-verify="buyed" placeholder="年-月-日" autocomplete="off" class="layui-input"> </div> </td> <td> <div class="layui-input-inline"> <input type="text" name="checked" id="checked" lay-verify="checked" placeholder="年-月-日" autocomplete="off" class="layui-input"> </div> </td> <td> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" name="remarks" lay-verify=" autocomplete="off" class="layui-input"> </div> </div> </td> <!-- 删除按钮 --> <td style="border-color:transparent !important;border-bottom:1px solid transparent !important" id="table11"> <div class="layui-inline"> <div class="layui-input-inline"> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger botton2" id="botton2">删除</button> </div> </div> </td> </tr> <!-- <td style="border-color:transparent !important;border-bottom:1px solid transparent !important"> <div class="layui-inline"> <div class="layui-input-inline"> <button type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-add" onclick="add()">继续添加</button> </div> </div> </td> --> </tbody> </div> </table> </div> <!-- 继续增加按钮 --> <div class="layui-form-item continue"> <div class="layui-inline"> <div class="clearfix"> <!-- <span class="square" onclick="add()" style="text-align:center"><img src="images/continue.png" style=""/></span> --> <button type="button" class="layui-btn layui-btn-primary layui-btn-sm layui-btn-add square" onclick="add()"><img src="images/continue.png" style=""/></button> <span class="words">继续添加</span> <!-- <span class="words">继续添加</span> --> </div> </div> </div> <div> <div id="test1"></div> </div> </div> ```
关于jquery的index方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>属性选择器</title> <script type="text/javascript" src="jquery-1.1.3.pack.js"></script> <script type="text/javascript"> $(function(){ $("#doit").click(function(){ alert($("div").index($('.test'))[0]); }); }); </script> </head> <body> <a href="#" name="cdddd" cssrain="admin">demo1</a> <a href="#" name="ddd" cssrain="adminddd">test1</a> <a href="#" name="cc" cssrain="adminfgfd">test3</a> <input type="button" id="doit" value="press" /> <br> <div class="test">test1</div> <div class="test" >test1</div> <div class="test" >test1</div> <div class="test" >test1</div> <div class="test" >test1</div> </body> </html> 为什么在我点击press按钮时,弹出框显示为:undefined,哪位高手能赐教?
select2 用属性选择器 动态添加 只有新添加的标签有渲染 原有标签的渲染没了
![图片说明](https://img-ask.csdn.net/upload/201808/01/1533091747_378076.png) js代码 update界面显示部分 ``` // 显示修改关键字症状界面 function updateView(id, system_id) { $("#btntype").val(1); $("#Submit1").click(function() { add(1); }); $ .ajax({ type : "POST", url : "/erzhentang/manage/forAjax.do?requestType=12.1", data : "id=" + id + "&system_id=" + system_id, // 发送到服务器的数据默认id是结论id success : function(msg) { $("#xuewei_id").val("1,2,3").select2(); /* alert(msg); */ var json = eval('(' + msg + ')'); document.getElementById("addModel").style.display = "block"; document.getElementById("id1").value = json.earScanJielun.id; document.getElementById("system_id1").value = json.earScanJielun.system_id; /* 遍历所属系统下所有 耳穴频扫疾病项 */ var arrESJ = eval(json.listEarScanJibing);// arrESJ是一个数组 var checkESJ = document.getElementById("jibing_num1"); var str2 = ""; for (var j = 0; j < arrESJ.length; j++) { str2 += "<option value=\"" + arrESJ[j].jibing_num + "\">" + arrESJ[j].name + "</option>"; var checkESJ2 = arrESJ[j].name; if (arrESJ[j].jibing_num == json.earScanJielun.jibing_num) {// 疾病编号人为控制每个编号都是唯一 arrESJ[j].name = "selected='selected'"; } $("#jibing_num1").html(str2); } document.getElementById("jibing_num1").value = json.earScanJielun.jibing_num; document.getElementById("jielun_rank1").value = json.earScanJielun.jielun_rank; document.getElementById("jielun1").value = json.earScanJielun.jielun; /* 下半截部分组合表动态展示修改和添加 */ var arrESC = eval(json.listEarScanCp);// arrESC是一个数组频扫结论组合表 var str = ""; var str1 = ""; for (var i = 0; i < arrESC.length; i++) { str += "<tr>"; str += "<td colspan=\"8\">"; str += "<div style=\"margin-left: 148px;\" id=\"earScanCp\">"; str += "<div style=\"float: left;\">"; str += "<textarea style=\"width: 50px;margin-left: -86px;position: absolute;\" id=\"cp_id\" name=\"cp_id\" >" + arrESC[i].id + "</textarea>"; str += "<select style=\"width: 60px;height: 36px;margin-left: 20px;\" id=\"gender\" name=\"gender\" >" var myselect = document.getElementById("gender");// 这个获取的是静态jsp页面里标签 /* * 下拉框主要是应展示项和所有下拉选项的值判断是否对应 分清主和客 * 所有展示项目为主表客表的某一项值和遍历主表的值对应 这里面 下拉框所有选项值是主表 */ var str1 = ""; for (var j = 0; j < myselect.options.length; j++) {// 下拉框是主家从静态页面获取并且遍历它 // alert("j值:" + myselect.options[j].value); str += "<option value=\"" + myselect.options[j].value + "\" " + (myselect.options[j].value == arrESC[i].gender ? "selected='selected'" : "") + ">" + myselect.options[j].text + "</option>"; } "</select>"; str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"min_age\" name=\"min_age\" >" + arrESC[i].min_age + "</textarea>"; str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"max_age\" name=\"max_age\" >" + arrESC[i].max_age + "</textarea>"; // str += "<textarea style=\"width: // 300px;margin-left:10px;\" id=\"xuewei_id\" // name=\"xuewei_id\" >" // + arrESC[i].xuewei_id + "</textarea>"; str +="<div id=\"selectSection\">"; str += "<select style=\"width: 300px;margin-left:10px;\" id=\"xuewei_id\" name=\"xuewei_id\"class=\"combox\" multiple >" str += "<optgroup label=\"小辈儿组\">"; str += "<option value=\"1\">心</option>"; str += "<option value=\"2\" " + "selected='selected'" + ">" + "肺" + "</option>"; str += "<option value=\"3\" " + "selected='selected'" + ">" + "小肠" + "</option>"; str += "<option value=\"4\">" + "口" + "</option>"; str += "<option value=\"5\">" + "食道" + "</option>"; str += "</optgroup>"; str += "</div>" $("#xuewei_id").val("1,2,3").select2(); str += "<textarea style=\"width: 220px;margin-left: 10px;\" id=\"chuzhen_id\" name=\"chuzhen_id\" >" + arrESC[i].chuzhen_id + "</textarea>"; str += "<select style=\"width: 60px;height: 36px;margin-left: 10px;\" id=\"bp\" name=\"bp\" >" var myselect1 = document.getElementById("bp");// 这个获取的是静态jsp页面里标签 for (var k = 0; k < myselect1.options.length; k++) {// 下拉框是主家从静态页面获取并且遍历它 // alert("j值:" + myselect1.options[k].value); str += "<option value=\"" + myselect1.options[k].value + "\" " + (myselect1.options[k].value == arrESC[i].bp ? "selected='selected'" : "") + ">" + myselect1.options[k].text + "</option>"; } "</select>"; str += "<textarea style=\"width: 50px; height: 36px;margin-left: 10px;margin-top: 0px;\" id=\"jielun_conform\" name=\"jielun_conform\">" + arrESC[i].jielun_conform + "</textarea>"; str += "</div>"; str += "<div >"; str += " <input type=\"button\" onclick=\"delRow(this," + arrESC[i].id + "," + arrESC[i].bianzhengId + ")\" value=\"删除\" id=\"deleteESC\" name=\"deleteESC\" style=\"float: left; margin-left:10px; margin-top: 5px;\">"; str += "</div>"; str += "</div>"; str += "</td>"; str += "</tr>"; /* 替换静态页面 */ $("#tbody1").html(str); select2Execute(); } } }); } ``` js代码add添加行 ``` // 添加行 频扫组合表信息 function addRow1() { var str = ""; str += "<tr>"; str += "<td colspan=\"8\">"; str += "<div style=\"margin-left: 148px;\" id=\"earScanCp\">"; str += "<div style=\"float: left;\">"; str += "<textarea style=\"width: 50px;margin-left: -86px;position: absolute;\" id=\"cp_id\" name=\"cp_id\" ></textarea>"; str += "<select style=\"width: 60px;height: 36px;margin-left: 20px;\" id=\"gender\" name=\"gender\" >" var myselect = document.getElementById("gender");// 这个获取的是静态jsp页面里标签 for (var j = 0; j < myselect.options.length; j++) {// 下拉框是主家从静态页面获取并且遍历它 str += "<option value=\"" + myselect.options[j].value + "\">" + myselect.options[j].text + "</option>"; } "</select>"; str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"min_age\" name=\"min_age\" ></textarea>"; str += "<textarea style=\"width: 50px;margin-left: 10px;\" id=\"max_age\" name=\"max_age\" ></textarea>"; // str += "<textarea style=\"width: 300px;margin-left: 10px;\" // id=\"xuewei_id\" name=\"xuewei_id\" ></textarea>"; str +="<div id=\"selectSection\">"; str += "<select style=\"width: 300px;margin-left:10px;\" id=\"xuewei_id\" name=\"xuewei_id\" class=\"combox\" multiple >" str += "<optgroup label=\"小辈儿组\">"; str += "<option value=\"1\">心</option>"; str += "<option value=\"2\">" + "肺" + "</option>"; str += "<option value=\"3\">" + "小肠" + "</option>"; str += "<option value=\"4\">" + "口" + "</option>"; str += "<option value=\"5\">" + "食道" + "</option>"; str += "</optgroup>"; "</select>"; str += "</div>"; str += "<textarea style=\"width: 220px;margin-left: 10px;\" id=\"chuzhen_id\" name=\"chuzhen_id\" ></textarea>"; str += "<select style=\"width: 60px;height: 36px;margin-left: 10px;\" id=\"bp\" name=\"bp\" >" var myselect1 = document.getElementById("bp");// 这个获取的是静态jsp页面里标签 for (var k = 0; k < myselect1.options.length; k++) {// 下拉框是主家从静态页面获取并且遍历它 // alert("j值:" + myselect1.options[k].value); // alert("text值:" + myselect1.options[k].text); str += "<option value=\"" + myselect1.options[k].value + "\">" + myselect1.options[k].text + "</option>"; } "</select>"; str += "<textarea style=\"width: 50px; height: 36px;margin-left: 10px;\" id=\"jielun_conform\" name=\"jielun_conform\"></textarea>"; str += "</div>"; str += "<div >"; str += " <input type=\"button\" onclick=\"delRow(this)\" value=\"删除\" id=\"deleteESC\" name=\"deleteESC\" style=\"float: left; margin-left:10px; margin-top: 5px;\">"; str += "</div>"; str += "</div>"; str += "</td>"; str += "</tr>"; $("#rowTable1").append(str); // $("select[name='xuewei_id']").select2({ // $("#xuewei_id").select2().trigger(); // $("#xuewei_id").trigger('change') select2Execute(); } ``` 执行select2部分 ``` /* 执行select2方法 */ function select2Execute() { $(function() { // $("select[name='xuewei_id']").select2({ // $('select[id="xuewei_id"]').select2({ // $('#xuewei_id').select2({ // $("#selectSection").find("select.combox").select2({ $(".combox").select2({ placeholder : "请至少选择一个人名", tags : true, createTag : function(decorated, params) { return null; }, width : '256px' }); function formatState(state) { if (!state.id) { return state.text; } var $state = $('<span>' + state.text + '</span>'); return $state; } ; $('#sel_recommender').select2({ placeholder : "请选择一个人名", templateResult : formatState, width : '256px' }); }); } ```
bootstraptable-edit使用问题
![图片说明](https://img-ask.csdn.net/upload/201908/06/1565077495_685813.png) 外部的表格无法获取数据,检查contentType属性配置问题。 ``` $(function() { //初始化Table var oTable = new TableInit(); oTable.Init(); }); var TableInit = function() { var oTableInit = new Object(); //初始化Table oTableInit.Init = function() { $('#table').bootstrapTable({ url : 'list',//请求后台的URL(*) method : 'post',//请求方式(*) toolbar : '#toolbar',//工具按钮用哪个容器 striped : true,//是否显示行间隔色 cache : false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination : true,//是否显示分页(*) sortable : false,//是否启用排序 sortOrder : "asc",//排序方式 queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server",//分页方式:client客户端分页,server服务端分页(*) pageNumber : 1,//初始化加载第一页,默认第一页 pageSize : 10,//每页的记录行数(*) pageList : [ 10, 25, 50, 100 ],//可供选择的每页的行数(*) search : true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 contentType : "application/x-www-form-urlencoded", strictSearch : true, showColumns : true,//是否显示所有的列 showRefresh : true,//是否显示刷新按钮 minimumCountColumns : 2,//最少允许的列数 clickToSelect : true,//是否启用点击选中行 height : 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId : "id",//每一行的唯一标识,一般为主键列 showToggle : true,//是否显示详细视图和列表视图的切换按钮 cardView : false,//是否显示详细视图 detailView : false,//是否显示父子表 columns : [ { field : 'id', title : '编号' }, { field : 'name', title : '名字' }, { field : 'price', title : '价格' }, { field : 'operate', title : '操作', formatter : operateFormatter //自定义方法,添加操作按钮 }, ], rowStyle : function(row, index) { var classesArr = [ 'white', 'lightblue' ]; var strclass = ""; if (index % 2 === 0) {//偶数行 strclass = classesArr[0]; } else {//奇数行 strclass = classesArr[1]; } return { classes : strclass }; },//隔行变色 }); }; //得到查询的参数 oTableInit.queryParams = function(params) { var temp = {//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit : params.limit,//页面大小 //pageNumber: params.pageNumber,//页码 offset : params.offset }; return temp; }; return oTableInit; }; function operateFormatter(value, row, index) {//赋予的参数 return [ '<a href="#" style="color:blue;" οnclick="edit(' + row.id + ')">编辑</a>|', '<a href="#" style="color:red;" οnclick="del(' + row.id + ')">删除</a>', ].join(''); } ``` table-edit.js ``` (function($){ 'use strict'; $.extend($.fn.bootstrapTable.defaults, { editable: false }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init, _initBody = BootstrapTable.prototype.initBody, _onSort = BootstrapTable.prototype.onSort, _append = BootstrapTable.prototype.append, _initHeader = BootstrapTable.prototype.initHeader ; //添加编辑表格默认属性,如何edit设置为false时,表示该列不可编辑 $.extend(true,BootstrapTable.COLUMN_DEFAULTS,{ edit:{ type:'text'//目前只支持 文本:text 下拉:select 日期:date } }); BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); var that = this; that.prevEditRow = null;//上一次编辑的行 that.columns = {};//列配置信息 that.insertRowVal = {};//新插入行的默认值 that.enableAppend = true;//允许添加新行 if (that.options.editable) { var columnObj = this['getColumns'](); $.each(columnObj,function(i,obj){ $.each(obj,function(z,col){ if(!isNaN(col.fieldIndex) && col.fieldIndex >= 0){ if(col.checkbox)col.edit = false; that.columns['column'+col.fieldIndex] = col; that.insertRowVal[col.field] = ''; } }); }); //this.initEdit(); } }; /*BootstrapTable.prototype.initHeader = function(){ _initHeader.apply(this, Array.prototype.slice.apply(arguments)); this.$container.find('.fixed-table-header').addClass('success'); };*/ BootstrapTable.prototype.initBody = function () { var that = this; _initBody.apply(this, Array.prototype.slice.apply(arguments)); if (!that.options.editable) return; this.initEdit(); //如果列是下拉框,则转换值为对应的文本 $.each(that.columns,function(indx,col){ if(col.edit && col.edit.type == 'select'){ col.edit = $.extend({},$.fn.bootstrapSelect.defaults,col.edit); if(col.edit.data.length > 0){ that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(col.edit.data,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); } else if(col.edit.url){ $.ajax({ url:col.edit.url, type:'post', data:col.edit.paramsType == 'json' ? JSON.stringify(col.edit.params) : col.edit.params, dataType:'json', success: function(jsonLst) { col.edit.onLoadSuccess.call(this,jsonLst); that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(jsonLst,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); col.edit.data = jsonLst; col.edit.url = null; }, error: function(xhr, textStatus, errorThrown){ col.edit.onLoadError.call(this); col.edit.data = []; col.edit.url = null; throw col.field+' 列下拉框数据加载失败'; } }); } } }); }; //根据行号删除指定行 BootstrapTable.prototype.removeRow = function (rowNum) { var that = this; var len = that.options.data.length; if (isNaN(rowNum)){ return; } if(that.$body.find('.editable-select').data('index') != rowNum){ recover(that); } //删除数据 that.options.data.splice(rowNum,1); if (len === that.options.data.length){ return; } var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify')){ if(indx > rowNum){ oldClass[indx-1] = 'editable-modify'; } else{ oldClass[indx] = 'editable-modify'; } } }); //this.prevEditRow = null; //this.$body.find('>tr').removeClass('editable-select'); that.initBody(); //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } //this.initEdit(); //没有数据时给提示加上样式 if(that.getData().length < 1){ that.$body.find('>tr').addClass('no-records-found'); } }; BootstrapTable.prototype.append = function (){ var that = this; //if(!that.enableAppend)return; var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify') || $(this).hasClass('editable-insert')){ oldClass[indx] = 'editable-modify'; } }); arguments[0] = $.extend({},that.insertRowVal,arguments[0]); _append.apply(this,Array.prototype.slice.apply(arguments)); if (that.options.editable){ //that.initEdit(); setTimeout(function (){ //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } that.$body.find('>tr:last').addClass('editable-modify'); that.$body.find('>tr:last').addClass('editable-insert');//双重保险,防止在快速点击添加时,为给新增行设置editable-modify属性 that.$body.find('>tr:last').click(); },60); } }; BootstrapTable.prototype.onSort = function () { _onSort.apply(this, Array.prototype.slice.apply(arguments)); var that = this; if (that.options.editable) { this.initEdit(); } }; BootstrapTable.prototype.getData = function () { return (this.searchText || this.searchCallback) ? this.data : this.options.data; }; BootstrapTable.prototype.getColumns = function () { return this.options.columns; }; /** * 获取有被修改过行的值 */ BootstrapTable.prototype.getModiDatas = function (){ var that = this; var datas = []; that.$body.find('.editable-modify').each(function(){ if(that.data[$(this).data('index')]){ datas.push(that.data[$(this).data('index')]); } }); return datas; }; /** * 获取指定列的和,参数为列下标 */ BootstrapTable.prototype.getColTotal = function (num){ var retVal = 0; this.$body.find('>tr').each(function(){ var colNum = 0; if($(this).hasClass('editable-select')){ colNum = $(this).find('td').eq(num).find('input').val(); } else{ colNum = $(this).find('td').eq(num).html(); } if(!isNaN(colNum)){//是数字才做想加 retVal += Number(colNum); } }); return retVal; }; /** * 创建可编辑表格 */ BootstrapTable.prototype.initEdit = function(){ var that = this, data = this.getData(); //this.$body.find('> tr').unbind('click').on('click' //this.$body.delegate('>tr','click' this.$body.find('> tr').unbind('click').on('click',function(){ var $tr = $(this); if($tr.hasClass('editable-select') || data.length < 1 || $tr.hasClass('no-records-found')){ return; } $tr.removeClass('no-records-found'); recover(that); that.prevEditRow = $tr; $tr.addClass('editable-select');//给当前编辑行添加样式,目前样式为空只做标识使用 that.$body.find('> tr').not(this).removeClass('editable-select'); $tr.find('td').closest('td').siblings().html(function(i,html){ initTrClick(that,this); }); }); //鼠标点击事件 $(document).bind('mousedown',function(event){ var $target = $(event.target); if(!($target.parents().andSelf().is(that.$body)) && !($target.parents().andSelf().is($('.datetimepicker')))){ setTimeout(function () { recover(that); //that.prevEditRow = null; //that.$body.find('> tr').removeClass('editable-select'); },10); }; }); }; $.fn.bootstrapTable.methods.push('getColumns', 'getModiDatas','removeRow','getColTotal'); /** * 给tr添加点击事件 */ function initTrClick(that,_this){ that.enableAppend = true; var $td = $(_this); var $tr = $td.parent(); var rowData = that.data[$tr.data('index')];//当前点击td所在行的数据 var tdIndex = $tr.children().index($td);//当前点击的td下标 var tdOpt = that.columns['column'+tdIndex]; if(!tdOpt.edit || typeof tdOpt.edit != 'object'){ return ; } $td.data('field',tdOpt.field); if(!$td.data('oldVal')){ $td.data('oldVal',$.trim(rowData[tdOpt.field])); } var height = $td.innerHeight() - 3; var width = $td.innerWidth() - 2; $td.data('style',$td.attr('style'));//保存原来的样式 $td.attr('style','margin:0px;padding:1px!important;'); var placeholder = ''; if(tdOpt.edit.required == true){ placeholder = '必填项'; } var value = rowData[tdOpt.field] == null || rowData[tdOpt.field] == ''?'':rowData[tdOpt.field]; $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;">' +'<input type="text" placeholder="'+placeholder+'" value="'+value+'" style="margin-left: 0px; margin-right: 0px; padding-top: 1px; padding-bottom: 1px; width:100%;height:100%">' +'</div>'); $td.width(width); var $input = $td.find('input'); if(!tdOpt.edit.type || tdOpt.edit.type == 'text'){ if(tdOpt.edit['click'] && typeof tdOpt.edit['click'] === 'function'){ $input.unbind('click').bind('click',function(event){ tdOpt.edit['click'].call(this,event); }); } if(tdOpt.edit['focus'] && typeof tdOpt.edit['focus'] === 'function'){ $input.unbind('focus').bind('focus',function(event){ tdOpt.edit['focus'].call(this,event); }); } $input.unbind('blur').on('blur',function(event){ if(tdOpt.edit['blur'] && typeof tdOpt.edit['blur'] === 'function'){ tdOpt.edit['blur'].call(this,event); } }); } else if(tdOpt.edit.type == 'select'){ $input.bootstrapSelect(tdOpt.edit); } else if(tdOpt.edit.type == 'date'){ $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;" class="input-group date form_datetime" data-link-field="dtp_editable_input">' +'<input class="form-control" type="text" value="'+value+'">' +'<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>' +'</div>' +'<input type="hidden" id="dtp_editable_input" value="'+value+'"/>' ); that.$body.find('.form_datetime').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, language:'zh-CN', format: 'yyyy-mm-dd hh:ii:ss', pickerPosition: 'bottom-left', showMeridian: 1 }); } } /** * 恢复tr,使之处于不可编辑状态 */ function recover(that){ var isModi = false;//判断行值是否变动过 if(that.prevEditRow != null){ that.prevEditRow.find('td').closest('td').siblings().html(function(i,html){ $(this).attr('style',$(this).data('style')); var textVal = $(this).find('input[type="text"]').val(); var hiddenVal = $(this).find('input[type="hidden"]').val(); if(typeof $(this).find('input[type="text"]').bootstrapSelect('getText') != 'object'){ $(this).find('input[type="text"]').bootstrapSelect('destroy'); } if(textVal != undefined){ if($(this).data('oldVal') != (hiddenVal?hiddenVal:$.trim(textVal)) && $(this).data('field')) { that.data[that.prevEditRow.data('index')][$(this).data('field')] = hiddenVal?hiddenVal:$.trim(textVal); isModi = true; } if(that.columns['column'+i].edit.required == true){ if(textVal == null || textVal == ''){ that.enableAppend = false; return '<span style="color:red;">必填项不能为空</span>'; } } return $.trim(textVal); } }); //新值跟旧值不匹配证明被改过 if(isModi || that.prevEditRow.hasClass('editable-insert')){ that.prevEditRow.addClass('editable-modify'); } else{ that.prevEditRow.removeClass('editable-modify'); } that.prevEditRow = null; that.$body.find('> tr').removeClass('editable-select'); } } })(jQuery); ``` 哪位大神能帮忙解决下
jQuery上传插件Uploadify 3.2在.NET下的详细例子
项目中要使用Uploadify 3.2来实现图片上传并生成缩略通的功能,特此记下来,以供各位参考! Uploadify下载地址:http://www.uploadify.com/download/ 下载下来解压后估计里面很多文件,其实有用的也就jquery.uploadify.min.js、uploadify.css、uploadify.swf和uploadify-cancel.png这四个文件。你还得下载jQuery库,我这里用的是jquery-1.7.2.min.js,另外和大多数JQ插件一样,同时也需要swfobject.js这个插件,我的是2.2的版本,东西都准备好了,那下面就开始。 前端界面: [html] view plain copy <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jqUploadify._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <link href="scripts/uploadify.css" rel="stylesheet" type="text/css" /> <link href="scripts/default.css" rel="stylesheet" type="text/css" /> <script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="scripts/swfobject.js" type="text/javascript"></script> <script src="scripts/jquery.uploadify.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $("#file_upload").uploadify({ //开启调试 'debug' : false, //是否自动上传 'auto':false, 'buttonText':'选择照片', //flash 'swf': "scripts/uploadify.swf", //文件选择后的容器ID 'queueID':'uploadfileQueue', 'uploader':'scripts/upload.ashx', 'width':'75', 'height':'24', 'multi':false, 'fileTypeDesc':'支持的格式:', 'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png', 'fileSizeLimit':'1MB', 'removeTimeout':1, //返回一个错误,选择文件的时候触发 'onSelectError':function(file, errorCode, errorMsg){ switch(errorCode) { case -100: alert("上传的文件数量已经超出系统限制的"+$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!"); break; case -110: alert("文件 ["+file.name+"] 大小超出系统限制的"+$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!"); break; case -120: alert("文件 ["+file.name+"] 大小异常!"); break; case -130: alert("文件 ["+file.name+"] 类型不正确!"); break; } }, //检测FLASH失败调用 'onFallback':function(){ alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。"); }, //上传到服务器,服务器返回相应信息到data里 'onUploadSuccess':function(file, data, response){ //alert(data); } }); }); function doUplaod(){ $('#file_upload').uploadify('upload','*'); } function closeLoad(){ $('#file_upload').uploadify('cancel','*'); } </script> </head> <body> <table width="704" border="0" align="center" cellpadding="0" cellspacing="0" id="__01"> <tr> <td align="center" valign="middle"> <div id="uploadfileQueue" style="padding: 3px;"> </div> <div id="file_upload"> </div> </td> </tr> <tr> <td height="50" align="center" valign="middle"> <img alt="" src="images/BeginUpload.gif" width="77" height="23" onclick="doUplaod()" style="cursor: hand" /> <img alt="" src="images/CancelUpload.gif" width="77" height="23" onclick="closeLoad()" style="cursor: hand" /> </td> </tr> </table> </body> </html> 后端的Handler: [csharp] view plain copy using System; using System.Collections; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using System.Web.SessionState; using System.IO; namespace jqUploadify.scripts { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class upload : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Charset = "utf-8"; HttpPostedFile file = context.Request.Files["Filedata"]; string uploadPath = context.Server.MapPath("..\\uploads\\"); if (file != null) { if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } file.SaveAs(uploadPath + file.FileName); //生成缩略图 MakeThumbnail(uploadPath + file.FileName, uploadPath + "\\s\\" + file.FileName, 80, 80); } } private void MakeThumbnail(string sourcePath, string newPath, int width, int height) { System.Drawing.Image ig = System.Drawing.Image.FromFile(sourcePath); int towidth = width; int toheight = height; int x = 0; int y = 0; int ow = ig.Width; int oh = ig.Height; if ((double)ig.Width / (double)ig.Height > (double)towidth / (double)toheight) { oh = ig.Height; ow = ig.Height * towidth / toheight; y = 0; x = (ig.Width - ow) / 2; } else { ow = ig.Width; oh = ig.Width * height / towidth; x = 0; y = (ig.Height - oh) / 2; } System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.Clear(System.Drawing.Color.Transparent); g.DrawImage(ig, new System.Drawing.Rectangle(0, 0, towidth, toheight), new System.Drawing.Rectangle(x, y, ow, oh), System.Drawing.GraphicsUnit.Pixel); try { bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception ex) { throw ex; } finally { ig.Dispose(); bitmap.Dispose(); g.Dispose(); } } public bool IsReusable { get { return false; } } } } 这样我们就是实现图片上传至uploads,生成的缩略图(这里设为80*80)存放在uploads下面的s文件夹中,是不是很简单呢!当然实际使用过程你还可能碰到一下的问题: 1、在火狐下session出现丢失的情况,可以参考这里:http://www.cnblogs.com/akingyao/archive/2012/09/04/2670794.html 2、IE9出现了按钮不能点击的问题,可以参考这里:http://www.uploadify.com/forum/#/discussion/9155/uploadify-version-3-2-does-not-work-in-ie9/p1 最后贴一个Uploadify参数说明: Uploadify Version 3.2 Options选项设置 auto 选择文件后自动上传 buttonClass 给“浏览按钮”加css的class样式 buttonCursor 鼠标移上去形状:arrow箭头、hand手型(默认) buttonImage 鼠标移上去变换图片 buttonText 按钮文字 checkExisting 在目录中检查文件是否已上传成功(1 ture,0 false) debug 是否显示调试框(默认不显示false) fileObjName 设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata,$tempFile = $_FILES['Filedata']['tmp_name'] fileSizeLimit 设置允许上传文件最大值B, KB, MB, GB 比如:'fileSizeLimit' : '20MB' fileTypeDesc 选择的文件的描述。这个字符串出现在浏览文件对话框中文件类型下拉框处。默认:All Files fileTypeExts 允许上传的文件类型。格式:'fileTypeExts' : '*.gif; *.jpg; *.png' formData 附带值,需要通过get or post传递的额外数据,需要结合onUploadStart事件一起使用 height “浏览按钮”高度px itemTemplate <itemTemplate>节点表示显示的内容。这些内容中也可以包含绑定到控件DataSource属性中元素集合的数据。 method 上传方式。默认:post multi 选择文件时是否可以【选择多个】。默认:可以true overrideEvents 不执行默认的onSelect事件 preventCaching 随机缓存值 默认true ,可选true和false.如果选true,那么在上传时会加入一个随机数来使每次的URL都不同,以防止缓存.但是可能与正常URL产生冲突 progressData 进度条上显示的进度:有百分比percentage和速度speed。默认百分比 queueID 给“进度条”加背景css的ID样式。文件选择后的容器ID queueSizeLimit 允许多文件上传的数量。默认:999 removeCompleted 上传完成后队列是否自动消失。默认:true removeTimeout 上传完成后队列多长时间后消失。默认 3秒 需要:'removeCompleted' : true,时使用 requeueErrors 队列上传出错,是否继续回滚队列,即反复尝试上传。默认:false successTimeout 上传超时时间。文件上传完成后,等待服务器返回信息的时间(秒).超过时间没有返回的话,插件认为返回了成功。 默认:30秒 swf swf文件的路径,本文件是插件自带的,不可用其它的代替.本参数不可省略 uploader 上传处理程序URL,本参数不可省略 uploadLimit 限制总上传文件数,默认是999。指同一时间,如果关闭浏览器后重新打开又可上传。 width “浏览按钮”宽度px Events 事件 onCancel 当取消一个上传队列中的文件时触发,删除时触发 onClearQueue 清除队列。当'cancel'方法带着*参数时,也就是说一次全部取消的时候触发.queueItemCount是被取消的文件个数(另外的按钮) onDestroy 取消所有的上传队列(另外的按钮) onDialogClose 当选择文件对话框关闭时触发,不论是点的'确定'还是'取消'都会触发.如果本事件被添加进了'overrideEvents'参数中,那么如果在选择文件时产生了错误,不会有错误提示框弹出 onDialogOpen 当选择文件框被打开时触发,没有传过来的参数 onDisable 关闭上传 onEnable 开启上传 onFallback 检测FLASH失败调用 onInit 每次初始化一个队列时触发 onQueueComplete 当队列中的所有文件上传完成时触发 onSelect 当文件从浏览框被添加到队列中时触发 onSelectError 选择文件出错时触发 onSWFReady flash准备好时触发 onUploadComplete当一个文件上传完成时触发 onUploadError 当文件上传完成但是返回错误时触发 onUploadProgress上传汇总 onUploadStart 一个文件上传之间触发 onUploadSuccess 每个上传完成并成功的文件都会触发本事件 Methods 方法 cancel 取消一个上传队列 destroy 取消所有上传队列 disable 禁止点击“浏览按钮” settings 返回或修改一个 uploadify实例的settings值 stop 停止当前的上传并重新添加到队列中去 upload 上传指定的文件或者所有队列中的文件 最后是DEMO的下载地址:http://download.csdn.net/detail/wangqiuyun/566551
使用webupload,IE9频繁出现崩溃
做了个javaWeb项目,上传图片用的是webupload,但是用IE9,页面频繁崩溃! ```/* webuploader END */ var $wrap = $('#uploader'), flashVersion = (function () { var version; try { version = navigator.plugins['Shockwave Flash']; version = version.description; } catch (ex) { try { version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash') .GetVariable('$version'); } catch (ex2) { version = '0.0'; } } version = version.match(/\d+/g); return parseFloat(version[0] + '.' + version[1], 10); })(); if (!WebUploader.Uploader.support('flash') && WebUploader.browser.ie < 10) { // flash 安装了但是版本过低。 if (!flashVersion || (flashVersion < 11.5)) { //layer.alert("您当前浏览器flash插件版本较低,可能无法使用系统中功能,<a href='https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'>点击升級</a>"); layer.confirm('您当前浏览器沒有flash,可能无法使用系统中功能,前往升级?', { btn : [ '确定', '取消' ]//按钮 }, function(index) { layer.close(index); //此处请求后台程序,下方是成功后的前台处理…… // var index = layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格,支持0-2 //window.location.href="www.hao123.com"; window.open('https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'); }); // 压根就没有安转。 } else { //layer.alert("您当前浏览器沒有flash,可能无法使用系统中功能,<a href='https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'>点击安裝</a>"); layer.confirm('您当前浏览器沒有flash,可能无法使用系统中功能,前往安装?', { btn : [ '确定', '取消' ]//按钮 }, function(index) { layer.close(index); //此处请求后台程序,下方是成功后的前台处理…… // var index = layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格,支持0-2 //window.location.href="www.hao123.com"; window.open('https://www.flash.cn/cdm/latest/flashplayerax_install_cn.exe'); }); } // return; } else if (!WebUploader.Uploader.support()) { layer.msg('Web Uploader 不支持您的浏览器!',{icon:6}); //return; } //var flag =true; var uploader = WebUploader.create({ auto: true, // swf文件路径 swf: '<%=basePath %>/static/webupload/Uploader.swf', // 文件接收服务端。 server:'<%=basePath %>/main/webuploader', // 选择文件的按钮。可选。 // 内部根据当前运行是创建,可能是input元素,也可能是flash. pick: '#picker', fileVal:'file', // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! resize: false, formData: { folderId: "<%=requestBean.getFolderId()%>" }, accept: { title: 'Files', extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv', mimeTypes: 'image/*,text/*' //word +',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document' //excel +',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' //ppt +',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation' +',application/pdf' +',application/zip' +',application/csv' +',.csv' }, duplicate :true, //chunked: true, //分片处理 //chunkSize: 5 * 1024 * 1024, //每片5M chunkRetry:false,//如果失败,则不重试 //duplicate:false,//是否可重复选择同一文件 //fileSingleSizeLimit: 10*1024*1024,//限制大小10M,单文件 //fileSizeLimit: allMaxSize*1024*1024,//限制大小10M,所有被选文件,超出选择不上 fileNumLimit:20 }); // 当有文件被添加进队列的时候 uploader.on( 'fileQueued', function( file ) { var $list = $("#webuploaderList"); $list.append( '<div id="' + file.id + '" class="item">' + '<h4 class="info">' + file.name + '</h4>' + '<p class="state">等待上传...</p>' + '</div>' ); }); // 文件上传过程中创建进度条实时显示。 uploader.on( 'uploadProgress', function( file, percentage ) { $("#uploadfileQueue").css("display","block"); var $li = $( '#'+file.id ), $percent = $li.find('.progress .progress-bar'); // 避免重复创建 if ( !$percent.length ) { $percent = $('<div class="progress progress-striped active" style="width:300px; height:10px; border:2px solid #09F;">' + '<div class="progress-bar" role="progressbar" style="width: 0%;height:100%; background-color:#09F; text-align:center; line-height:10px; font-size:10px;">' + '</div>' + '</div>').appendTo( $li ).find('.progress-bar'); } $li.find('p.state').text('上传中...'); $percent.html( Math.round(percentage * 100) +"%" ); $percent.css( 'width', percentage * 100 + '%' ); }); uploader.on('uploadSuccess', function (file,response) { if(response.ISOK=='N'){ layer.msg(response.message); $('#' + file.id).find('p.state').text('上传出错:'+response.message); } else{ $('#' + file.id).find('p.state').text('已上传'); if(response.newFid){ newFid = response.newFid; } } }); uploader.on('uploadError', function (file) { //layer.msg('上传出错!'+handler); $('#' + file.id).find('p.state').text('上传出错!'); }); // 完成上传完了,成功或者失败,先删除进度条。 uploader.on( 'uploadComplete', function(file ) { $( '#'+file.id ).find('.progress').remove(); }); //所有文件上传完成 uploader.on('uploadFinished',function(file){ var changeList; $.ajax( { url: '<%=basePath %>/userSession/changeListBySwfUpload', dataType: "json", async:false, cache:false, success: function(data, textStatus, jqXHR) { changeList=data; }, error: function(jqXHR, textStatus, errorThrown) { //console.log(errorThrown); } }); if(changeList == undefined){ return false; } var v_div=$("<div style='width:600px'>"); var v_table=$("<table id='fileuploadsinfo'>").css("width","500px").appendTo(v_div); var v_hred_tr=$("<tr>").css("width","500px").css("height","40px"); $("<th>").text("文件名").css("width","200px").css("height","40px").appendTo(v_hred_tr); $("<th>").text("备注").css("width","300px").css("height","40px").appendTo(v_hred_tr); v_hred_tr.appendTo(v_table); $.each(changeList,function(idx,v_sel){ var v_body_tr=$("<tr>").css("width","500px").css("height","40px").attr("cFid",v_sel.cFId); $("<td>").text(v_sel.file).css("width","200px").css("height","40px").appendTo(v_body_tr); var v_rmk=$("<input type='text' class='remark'>").css("width",'90%').css("height","99%"); $("<td>").css("width","300px").css("height","40px").appendTo(v_body_tr).append(v_rmk); v_body_tr.appendTo(v_table); /* var v_div=$("<div ><span style='display: none' ><input type='text' name='cFId' value='"++"'/></span><span style='width: 100px' ><input type='text' name='cFReName' readonly='readonly' value='"+v_sel.file+"'/></span><span style='width: 400px' ><input type='text' name='cFNote'/></span></div>"); v_div.appendTo(v_form); */ //changeList.splice(idx,1); //return true; }); layer.open({ type: 1, title:"", area: ["500px", "300px"], content:v_div.html(), closeBtn:1, btnAlign: 'c', scrollbar:true, btn:['确定','取消'], yes: function(index, layero){ var jsonArray=[]; var v_flag=false; $("#fileuploadsinfo").find('tr').not(':eq(0)').each(function(idx,itr){ var v_cFid=$(itr).attr("cFid"); var v_remark=$(itr).find('.remark').val(); if($.trim(v_remark).length<=20){ jsonArray.push({"fileInfo":v_cFid+'_'+v_remark}); }else{ layer.msg("备注输入有误,请输入20位以内的备注信息"); v_flag=true; return false; } }); //var str= JSON.stringify(jsonArray) if(v_flag){ return false; } $.ajax({ url: '<%=basePath %>/main/saveNote', type: 'post', dataType: 'json', data:{datas:jsonArray}, async:false, success: function (data) { uploader.reset(); //alert(33); uploader.destory(); if(data.flag=="Y"){ layer.closeAll(); layer.msg("上传成功",{icon:6},function(){ if(newFid){//如果新增了文件夹则刷新父级窗口 parent.location.reload(); }else{ window.location.reload(); } }); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { } }); } , btn2: function(index, layero){ if(newFid){//如果新增了文件夹则刷新父级窗口 parent.location.reload(); }else{ window.location.reload(); } } }); }); /* webuploader END */ ``` 崩溃错误描述如下 : 问题签名: 问题事件名称: APPCRASH 应用程序名: iexplore.exe 应用程序版本: 9.0.8112.16421 应用程序时间戳: 4d76255d 故障模块名称: Flash32_32_0_0_207.ocx 故障模块版本: 32.0.0.207 故障模块时间戳: 5ceb04d1 异常代码: c0000005 异常偏移: 002d7e64 OS 版本: 6.1.7601.2.1.0 .256.48 区域设置 ID: 2052 其他信息 1: 2826 其他信息 2: 2826ae5788d1601e09d13cfdc228c271 其他信息 3: a6c4 其他信息 4: a6c4ac129c9c2b4af725e35cc1a77c20 联机阅读隐私声明: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804 如果无法获取联机隐私声明,请脱机阅读我们的隐私声明: C:\Windows\system32\zh-CN\erofflps.txt
C#请问如何控制器如何获取选择值进行有条件查询,本人初学,希望大神帮忙!希望写详细点,感谢!
public class C_F_BuyCertController : Controller { public ActionResult Getlist( ) { string ConnectString = "data source=172.16.60.144/orcl;User Id=yzd4hub;Password=yzd4hub;"; OracleConnection conn = new OracleConnection(ConnectString);//Data Source后面跟数据库的名字,User ID为用户名,Password为密码 try { conn.Open(); string province=Request["province"]; string city = Request.Form["city"]; string county = Request.Form["county"]; string sql = "select a.c_id,a.buy_id from c_f_buycert a where a.province=:province and a.city=:city and a.county=:county"; OracleCommand cmd = new OracleCommand(sql, conn); OracleDataAdapter oda = new OracleDataAdapter(cmd); DataTable dt = new DataTable(); oda.Fill(dt); List<C_F_BuyCert> modellist = new List<C_F_BuyCert>(); int rowscount = dt.Rows.Count; if (rowscount > 0) { C_F_BuyCert buycert; for (int n = 0; n < rowscount; n++) { buycert = new C_F_BuyCert(); buycert.C_Id = dt.Rows[n]["C_ID"].ToString(); buycert.Buy_Id = dt.Rows[n]["BUY_ID"].ToString(); modellist.Add(buycert); } } ViewData.Add("list", modellist); return View(); } finally { conn.Close(); } } } } @model IEnumerable<WebApplication1.Models.C_F_BuyCert> @{ViewBag.Title = "Getlist";} <script type="text/javascript" src="~/Scripts/js/jquery.min.js"></script> <script type="text/javascript" src="~/Scripts/js/dateRange.js"></script> <script type="text/javascript" src="~/Scripts/js/monthPicker.js"></script> <link rel="stylesheet" type="text/css" href="~/Content/dateRange.css" /> <link rel="stylesheet" type="text/css" href="~/Content/monthPicker.css" /> <script type="text/javascript" src="~/Scripts/js/area.js"></script> <div class="formset"> <table align="center" border="1"> <form method=POST action="/Controllers/C_F_BuyCertController/Getlist" name="form1"> <dl> <dt>查询购买事实</dt> <dd> <div class="editor-label"> 所在省: </div> <div class="editor-field"> <select id="province" name="province"></select> </div> </dd> <dd> <div class="editor-label"> 所在市: </div> <div class="editor-field"> <select id="city" name="city"></select> </div> </dd> <dd> <div class="editor-label"> 所在区县: </div> <div class="editor-field"> <select id="county" name="city"></select> </div> </dd> <dd> <input id="Submit1" type="submit" value="查询" /> <input id="Reset1" type="reset" value="重置" /> </dd> </dl> </form> </table> </div> <div class="formset"> <table align="center" border="1"> <tr> <th>C_Id</th> <th>Buy_Id</th> </tr> @{ var list = ViewData["list"] as List<WebApplication1.Models.C_F_BuyCert>; foreach (var item in list) { <tr> <td>@item.C_Id</td> <td>@item.Buy_Id</td> </tr> } }</table></div>
JQuery插件-HighCharts 一个令我蛋疼的事 求教、、
<div class="quote_title">引用</div><div class="quote_div"> <br />&nbsp; 最近在做一个监控系统,需要制作两个图形,一个度盘,一个波形图,最先开始使用了JFreeChart绘制图形,但是在服务器端绘制图形鸭梨很大,占用带宽多,浏览图形不畅快,抛弃之。 <br />&nbsp;&nbsp;&nbsp; 然后觉得可以使用Java Applet在客户端绘制图形,但是这个要求JRE环境,于是也被无情的抛弃了。 <br />&nbsp;&nbsp;&nbsp; 然后在网上找了会,发现一个HighCharts类库,一个JQuery插件,使用这个绘制出来的图形挺好看的,效果也令人满意,但是目前跟AJAX结合之后,highcharts制造出来的内存一直没有删除,PF使用率以每秒3MB的速度网上猛涨,令人大感鸭梨、、、(波形图现在困到这一个内存问题了) <br />&nbsp;&nbsp; 最后的度盘,在刚开始采用的Highcharts画的饼图,弄的一块一块的 效果也差,所以在GOOGLE了把JS绘图技术,搜出了 令我大感兴奋的矢量绘图技术,SVG AND VML,SVG支持除IE外大部分的浏览器,VML仅支持IE5以上的浏览器器,所以采用了SVG+VML结合在浏览器中绘图,图形不错,最后结合AJAX也没有发现内存问题。 <br />&nbsp;&nbsp; 所以现在在这想跟大家讨论一下HighCharts的使用、、请各位发表意见 <br /> <br /></div>自己要做一个实时的监控数据的图形,但是跟AJAX结合的时候,内存增长的速度 比较快,谁能帮我看看怎么回事,谢谢了!<img src="/images/smiles/icon_redface.gif"/> <br /><pre name="code" class="java"> waveLineImage = { chart: { renderTo: 'waveImage', //绘制到DIV容器中,根据ID defaultSeriesType: 'line', //绘制类型 目前是曲线 plotBorderWidth: 1, plotBorderColor: '#99CC99', marginRight: 12, showAxes: true }, title: { text: '', x: -20 //center }, xAxis: { tickWidth: 0, tickInterval: 5, gridLineWidth: 1, gridLineColor: '#99CC99', categories: [] }, yAxis: { title: { text: '' }, min: -1, tickInterval: 5, gridLineWidth: 1, gridLineColor: '#99CC99' }, plotOptions: { series: { animation: false, marker: { enabled: false } } }, tooltip: { enabled:false, formatter: function(){ return null; } }, legend: { enabled: false }, exporting: { enabled: false }, series: [{ name: "monitor", data: [] }, { name: "temp", data: [] }] }</pre> <br /> <br />上面是 初始化曲线图的实例 <br /> <br /><pre name="code" class="java"> var tempArray = null; function drawOscillogram(waveData){ if (waveData) { //传输过来的JSON数据 var dataArray = new Array(); var array = null, point = null, num = null,item = null; var waveDataLength = waveData.length; for (var i = 0; i &lt; waveDataLength; i++) { array = waveData[i].split(","); point = 1 / array.length; for (var j = 0; j &lt; array.length; j++) { num = i + Math.round((point * j) * 10) / 10; item = parseFloat(array[j]); dataArray.push([num, item]); num = null; } array = null; item = null; point = null; } if (waveDataLength &lt; 60) { //当不足60个点时,创建一个临时的数据,绑定到temp当中 if (tempArray == null) { tempArray = new Array(); for (var i = 0; i &lt; 61; i++) { tempArray.push([i, -6]); } } if(!waveLineImage.series[1]) waveLineImage.addSeries("",true,false); waveLineImage.series[1].data = tempArray; } else { tempArray = null; waveLineImage.series[1].remove(); } waveLineImage.series[0].data = dataArray; dataArray = null; waveDataLength = null; waveLineImage.redraw(); //重新绘制HighCharts图形 new Highcharts.Chart(waveLineImage); //绘制HIghcharts图形,这一句会生成大内 //存,想直接调用redraw重绘方法,完成绘图,这样不用重新刷新区域,而是在旧的基础上绘制,会减少内存,但 //是曲线什么都显示不出来 } } </pre> <br /> <br />waveData 是 传过来的 数据,把他绑定到图形中 ,内存长的飞快,每秒3MB,怎么修改,怀疑是//new Highcharts.Chart(waveLineImage);这句话增长的内存,然后调用 highCharts 的redraw 方法,重画,可是没有效果出来 求高手 提错!!!!<br/><strong>问题补充</strong><br/>上面有做出来的效果图,可以下载出来看一下、、 <br /> <br />另外HighCharts有一个redraw重绘方法,但是应该怎么调用呢,我调用无效!<br/><strong>问题补充</strong><br/>主要就是内存的方面了,也看了好多的JavaScript方面性能问题,内存释放问题,但是都不太理想,<br/><strong>问题补充</strong><br/> <br /><table class="bbcode"><tr><td>怎么没人回复啊 泪奔、、</td><td>太遗憾了吧</table><br/><strong>问题补充</strong><br/><div class="quote_title">引用</div><div class="quote_div"><ul> <li>用不用我加点注释 、、 汗 </li><li>哪一点有问题啊 泪奔中、、 </li><li>不回复也得顶起来啊 呜呜、 </li><li>大家都来探讨一下啊 呵呵 </li><li>大家在客户端都用什么方法绘制图表呢 </li></ul></div><br/><strong>问题补充</strong><br/><img src="/images/smiles/icon_sad.gif"/>&nbsp;<img src="/images/smiles/icon_surprised.gif"/>&nbsp;<img src="/images/smiles/icon_lol.gif"/>&nbsp;<img src="/images/smiles/icon_cool.gif"/>&nbsp;<img src="/images/smiles/icon_confused.gif"/>&nbsp;<img src="/images/smiles/icon_eek.gif"/>&nbsp;<img src="/images/smiles/icon_mad.gif"/>&nbsp;<img src="/images/smiles/icon_razz.gif"/>&nbsp;<img src="/images/smiles/icon_redface.gif"/>&nbsp;<img src="/images/smiles/icon_cry.gif"/> <br/><strong>问题补充</strong><br/><div class="quote_title">引用</div><div class="quote_div"><ul> <li><span style="color: #00ff00">咱么是顶起呢?还是顶起呢?呵呵</span> </li><li><span style="color: #0000ff">咱么是顶起呢?还是顶起呢?呵呵</span> </li><li><span style="color: red">顶顶顶 力压千钧</span> </li><li><span style="color: black">虽说晚上不上班 也不至于吧</span> </li><li><span style="color: #adefaa">有哪一点会是不好的 大大们都去哪了</span> </li></ul></div><br/><strong>问题补充</strong><br/><div class="quote_title">奥义之舞 写道</div><div class="quote_div"><div class="quote_title">引用</div><div class="quote_div"><ul> <li><span style="color: #00ff00">咱么是顶起呢?还是顶起呢?呵呵</span> </li><li><span style="color: #0000ff">看帖不回帖 很不给力啊</span> </li><li><span style="color: red">顶顶顶 力压千钧</span> </li><li><span style="color: black">虽说晚上不上班 也不至于吧</span> </li><li><span style="color: #adefaa">有哪一点会是不好的 大大们都去哪了</span> </li></ul></div></div> <br />+1<br/><strong>问题补充</strong><br/><div class="quote_title">引用</div><div class="quote_div">在highcharts官网http://www.highcharts.com/ref/#chart-object查了很久,经过测试,发现一个方法可行,很给力的时刻,修改了点代码,现在使用这种代码之后,可以保持在120KB/s左右的增长率</div> <br />修改后的代码:<pre name="code" class="java">waveLineImage = new Highcharts.Chart({ chart: { renderTo: 'waveImage', //绘制到DIV容器中,根据ID defaultSeriesType: 'line', //绘制类型 目前是曲线 plotBorderWidth: 1, plotBorderColor: '#99CC99', marginRight: 12, showAxes: true }, title: { text: '', x: -20 //center }, xAxis: { tickWidth: 0, tickInterval: 5, gridLineWidth: 1, gridLineColor: '#99CC99', categories: [] }, yAxis: { title: { text: '' }, min: -1, tickInterval: 5, gridLineWidth: 1, gridLineColor: '#99CC99' }, plotOptions: { series: { animation: false, marker: { enabled: false } } }, tooltip: { enabled:false, formatter: function(){ return null; } }, legend: { enabled: false }, exporting: { enabled: false }, series: [{ name: "monitor", data: [] }, { name: "temp", data: [] }] });</pre> 直接实例化绘图对象 <br /><pre name="code" class="java"> var tempArray = null; function drawOscillogram(waveData){ if (waveData) { //传输过来的JSON数据 var dataArray = new Array(); var array = null, point = null, num = null,item = null; var waveDataLength = waveData.length; for (var i = 0; i &lt; waveDataLength; i++) { array = waveData[i].split(","); point = 1 / array.length; for (var j = 0; j &lt; array.length; j++) { num = i + Math.round((point * j) * 10) / 10; item = parseFloat(array[j]); dataArray.push([num, item]); num = null;item=null; } array = null; item = null; point = null; } array = null; item = null; point = null; num = null; item=null; if (waveDataLength &lt; 60) { //当不足60个点时,创建一个临时的数据,绑定到temp当中 if (tempArray == null) { tempArray = new Array(); for (var i = 0; i &lt; 61; i++) { tempArray.push([i, -6]); } } if(!waveLineImage.series[1]) waveLineImage.addSeries("",true,false); waveLineImage.series[1].setData(tempArray); } else { tempArray = null; waveLineImage.series[1].remove(); } waveLineImage.series[0].setData(dataArray); //在这里通过setData方法设置数据 dataArray = null; waveDataLength = null; waveLineImage.redraw(); //这样调用图例对象的重绘方法可以找的到数据,以前数 //据是设置到JSON里面了,这个对象的数据应该没有更新 } } </pre> <br />不过这种现在仍然有100多KB的增长率,对于一个长期停留在页面中不刷新的局面,仍然是一个问题,各位老大们,有没有一个很好的意见提出来,让我继续改进,thank you<br/><strong>问题补充</strong><br/><div class="quote_title">tanqimin 写道</div><div class="quote_div">这个图表真的很蛋痛!</div> <br />哥们这个图表怎么了,很好看啊 呵呵 就是性能有点扯淡,不过性能是决定页面技术的优先选择、、 <br />很惆怅&nbsp;<img src="/images/smiles/icon_eek.gif"/> <br/><strong>问题补充</strong><br/><div class="quote_title">夜之son 写道</div><div class="quote_div">想让大家说什么呢,图太少,不给力。</div> <br />ok 上图 <br/><strong>问题补充</strong><br/>另外这个是VML画的度盘,跟AJAX结合 也不卡,很给力啊 呵呵 推荐 SVG + VML 结合 一秒 10多KB的增长量<br/><strong>问题补充</strong><br/>发现看英文文档狠让人蛋疼的事,有木有,中文帮助文档在哪里 呜呜 <br /> <br /><div class="quote_title">引用</div><div class="quote_div"> <br />希望对我的循环提出哪里可以优化点在、、感觉这里面也会浪费点性能 <br />希望最后能把PF增长率 控制在 10KB以内 <br />希望告我一个 JS代码 控制页面刷新的 代码 <br />这样我可以再内存增长到一定程度的时候 刷新释放内存 <br /></div><br/><strong>问题补充</strong><br/><div class="quote_title">hyj1254 写道</div><div class="quote_div">highChart我也在用,倒是没深究内存增长的问题。它也是vml+svg。内存不释放跟js代码和浏览器自身实现方式都有关系,有些情况你是无法有效释放内存的:比如在ie中,希望刷新释放内存是无法实现的,你可以到taobao、google地图等网站验证下,它默认将所有的页面元素都缓存起来,因此即使js完全没有问题它所占的内存也会越来越大。但chrome就好得多,每次刷新都显著地释放一些内存。至于highChart你可以到官网上反映下,看是否是内存泄露导致的。</div>+1 <br /><div class="quote_title">引用</div><div class="quote_div">用的浏览器 IE 和 火狐的 ,谷歌到没有看,不过同事通过谷歌浏览器访问了一下,正常,内存这块到没有看,这个浏览器的问题一直在关注, IE 和 FireFox的 掐架 一直没有停止 、、、</div> <br /><div class="quote_title">引用</div><div class="quote_div"> <br />&nbsp;&nbsp; 另外JS代码构造对象和释放对象之间,这个度由于刚开始关注性能问题,也没能做的很好,大家看到哪一点可以优化的,可以提出来、、 <br />over&nbsp;<img src="/images/smiles/icon_cry.gif"/>&nbsp;<img src="/images/smiles/icon_lol.gif"/>&nbsp;<img src="/images/smiles/icon_surprised.gif"/> <br /></div> <br /> <br /><br/><strong>问题补充</strong><br/><div class="quote_title">clue 写道</div><div class="quote_div">哦哦。。。原来是HighCharts <br />官方声称是有解决内存泄漏问题,但关键是。。。它指的泄漏是关闭浏览器仍不释放的泄漏,而非运行中释放 <br /> <br />基本上,想要解决难度很大,几乎底层代码都要过一遍,加上清理事件、解除Dom引用的逻辑。 <br />好像excanvas也需要一同改进 <br /> <br />HighCharts代码不便放出(就算放出也没用,版本低,改动大),但还是能做到将近0增长的。 <br /> <br />P.S. 推荐使用sIEve查看IE下Dom节点释放情况,JS本身的GC是很完善的,但与Dom循环引用就无能为力了。所以查看Dom节点的释放情况就知道是哪里有泄漏了。</div> <br />高手、、那按照你这样说,我要想做到内存0增长或近0增长,必须修改highcharts的源代码是么? <br />期待回答/// <br />对于上SIEVE这个软件,下载了也是用了 ,还有一个 火狐里面可以查看内存的软件,也使用了,但是 但是很头疼, <br />还没有找到解决的办法、 <br />还是经验少啊<br/><strong>问题补充</strong><br/><div class="quote_title">纪红玉 写道</div><div class="quote_div">JavaEye/ItEye <br />1号群 现招人 QQ 群号:39211996 <br />女程序员群7736086 <br />发完帖子我的号就没了,哎! <br /></div> <br />找女程序员群,貌似很难吧,估计你这个也是新创的、<br/><strong>问题补充</strong><br/><div class="quote_title">yintingbird 写道</div><div class="quote_div">我建议你用FusionCharts,你可以在网上搜一下,他的图表显示就很好,我用的就是这个,很简单的,你可以再往上找一个破解版的,但是破解版的柯南找的时候有点不好找。</div> <br />这个项目 已经基本完成了,这时候在动这个技术不太可可能,有可能到最后的时候 换成 SVG + VML了, <br />觉得这个 可以 控制,但是 AJAX 刷新时,内存也是嗖嗖的网上长啊,一秒10几KB 这还只是 小图形。 <br /> <br /> <br />不过应该比当年用DIV时候强吧、、<img src="/images/smiles/icon_cool.gif"/> <br/><strong>问题补充</strong><br/>很奇怪,为什么要投隐呢,难道我发的板块不对 晕、、<br/><strong>问题补充</strong><br/>偷偷的用 到时候 还得改 先拿着个练练手啊!<br/><strong>问题补充</strong><br/><div class="quote_title">conanca 写道</div><div class="quote_div"><div class="quote_title">奥义之舞 写道</div><div class="quote_div"><div class="quote_title">yintingbird 写道</div><div class="quote_div">我建议你用FusionCharts,你可以在网上搜一下,他的图表显示就很好,我用的就是这个,很简单的,你可以再往上找一个破解版的,但是破解版的柯南找的时候有点不好找。</div> <br />这个项目 已经基本完成了,这时候在动这个技术不太可可能,有可能到最后的时候 换成 SVG + VML了, <br />觉得这个 可以 控制,但是 AJAX 刷新时,内存也是嗖嗖的网上长啊,一秒10几KB 这还只是 小图形。 <br /> <br /> <br />不过应该比当年用DIV时候强吧、、<img src="/images/smiles/icon_cool.gif"/> </div> <br /> <br />HighCharts 商业用的话要收费吧。 <br />你们买了授权还是做的是国内项目?</div> <br />先拿这个练手,到时候重新换一个 <br />准备用raphael 谁用过这个,这个性能怎么样呢,封装的SVG+VML<br/><strong>问题补充</strong><br/><div class="quote_title">红四团 写道</div><div class="quote_div">HighCharts所renderer出来的每个Element都是可以destroy的,每个element都有destroy方法。HighCharts封装了VML和SVG,基本上能够跨浏览器。</div> <br />这个还真不知道,只知道总的有个释放的对象,结果一 释放,悲剧的事情发生了,整个图形都没有了<img src="/images/smiles/icon_cry.gif"/> <br /> <br /> <br />另外想知道 highcharts商用要上交多少money啊 <br /><br/><strong>问题补充</strong><br/><div class="quote_title">sunofsummer 写道</div><div class="quote_div">我以前和你遇到过同样的问题,amcharts可以解决。</div> <br />性能方面可以解决么,内存长的快不,和AJAX交互怎么样,<br/><strong>问题补充</strong><br/><div class="quote_title">kiven 写道</div><div class="quote_div">http://www.open-lib.com/Type/164-1.jsp <br /> <br />这里面或许有你要找的。大家都共享一下自己项目用的图标组件吧。</div> <br />thank you <br /> <br /> <br /> <br /> <br /> <br /> <br />不知道who用过Flex么 他生成的swf文件是在客户端生成的,还是服务器生成之后传输过来的呢,如果我要对他进行定时刷新,速度怎么样<br/><strong>问题补充</strong><br/><div class="quote_title">ahzzhen2 写道</div><div class="quote_div">用过Flex as3脚本写过一个监控的,内存占用是用仪表盘形式做的。也试过用pushlet+highchart写过(不是很理想,抛弃)</div> <br />貌似没理解我的意思,我说的是Flex监控 实时刷新 内存部分长的块么, 是在客户端 或者 服务器端绘图,绘制出来的图形传递速度怎么样,占用带宽多么<br/><strong>问题补充</strong><br/><div class="quote_title">sunofsummer 写道</div><div class="quote_div"><div class="quote_title">奥义之舞 写道</div><div class="quote_div"><div class="quote_title">sunofsummer 写道</div><div class="quote_div">我以前和你遇到过同样的问题,amcharts可以解决。</div> <br />性能方面可以解决么,内存长的快不,和AJAX交互怎么样,</div> <br /> <br />amcharts是基于flash实现的 如果网页游戏不存在内存问题的话 它也不会有的。 <br /></div> <br />额 这种的是不是刚开始都要进行加载等待一下啊
spring mvc ajax form 上传附件问题
spring mvc 下ajax form 如何上传附件? 目前无奈只能分2步做了。 [code="js"] function addOrUpdate(){ var r = $('#projectForm').form('validate'); if(!r) { return false; } $.post("proj/addOrUpdate",$("#projectForm").serializeArray(),function(data){ if(data.result != false){ $.messager.confirm('提示', '是否要上传附件?',function(result){ //执行待操作步骤 if (result) { $("#projectForm").hide(); $("#uploadPannel").show(); $("#pId").val(data.pid); }else{ $('#MyPopWindow').window('close'); $('#projectTable').datagrid('reload'); $.messager.alert('提示',data.mes,'info'); } }); }else{ $.messager.alert('提示',data.mes,'info'); } }); } [/code] [code="html"] <div id="uploadPannel" style="display:none"> <iframe id="result" name="result" style="display: none;" frameborder="0" src=""></iframe> <form target="result" id="uploadForm" method="post" enctype="multipart/form-data"> <input type="hidden" name="id" id="pId"/> <table class="popTable"> <tr> <td class="alignR">上传附件:</td> <td> <input style="width: 200" id="fileUpload" type="file" name="file" class="easyui-validatebox" required="true" /> </td> </tr> <tr> <td colspan="2" class="alignC"> <a href="#" id="btn-add" onclick="uploadFile();" class="easyui-linkbutton" iconCls="icon-save">上传附件</a> <a href="#" id="btn-back" onclick="turnBack();" class="easyui-linkbutton" iconCls="icon-back">取消</a> <br/> <br/> <br/> *请选择IE6以上或者firefox浏览器上传附件。 </td> </tr> </table> </form> </div> <!-- 验证还是jquery-validation好用,这里省事没用 --> <form id="projectForm" method="post" style="margin: 10; text-align: center;"> <input type="hidden" name="id" id="uuid"> <table class="popTable"> <tr> <td class="alignR">项目名称:</td> <td> <input name="name" style="width: 200" validType="length[1,32]" class="easyui-validatebox" required="true" /> </td> </tr> <tr> <td class="alignR">项目类别:</td> <td> <input id="projTypeList" name="type.id" style="width:200"/> </td> </tr> <tr> <td class="alignR">项目需求方:</td> <td> <input id="projDemanderList" name="demander.id" style="width:200"/> </td> </tr> <tr> <td class="alignR">终端厂商:</td> <td> <input id="mftList" name="mft_id" style="width:200"/> </td> </tr> <tr> <td class="alignR">项目状态:</td> <td> <input id="statusList" name="status.id" style="width:200"/> </td> </tr> <tr> <td class="alignR">责任人:</td> <td> <input id="dutierList" name="duty_id" style="width:200"/> </td> </tr> <tr> <td width="30%" class="alignR">计划完成时间:</td> <td> <input name="planEndTime" style="width: 200" class="Wdate" onClick="WdatePicker()"> </td> </tr> <tr> <td class="alignR">备注:</td> <td> <textarea name="note" style="width: 200" class="easyui-validatebox" rows="10" cols="1"></textarea> </td> </tr> <tr> <td colspan="2" class="alignC"> <a href="#" id="btn-back" onclick="closeWindow();" class="easyui-linkbutton" iconCls="icon-back">返回</a> <a href="#" id="btn-add" onclick="addOrUpdate();" class="easyui-linkbutton" iconCls="icon-save">保存</a> <br/> <br/> <br/> *请选择IE6以上或者firefox浏览器上传附件。 </td> </tr> </table> </form> [/code]
Jquery Ajax 提交表单 JSP页面局部刷新 javascript 中写的code不执行
下面是我碰到的具体问题,一直很是郁闷!我贴下我的代码,如果解决了,小弟不甚感激。。。 js 代码: [code="js"] //ajax 执行成功的回调函数 function showSuccess(data){ alert('执行成功!!!'); } function showError(){ alert('出错啦!!!'); } //ajax提交采购或者销售项 function addGoodsItems(){ if($("#goodsName").val() == ""){ alert('货品不能为空!'); }else if($("#amount").val() == 0){ alert('数量需多余0'); }else if($("#price").val() == ""){ alert('单价不能为空'); }else{ $(document).ready(function(){ alert('这个方法始终就是没有起作用?????????'); $("#itemsForm").submit(function(){ //ajax 提交参数 var options = { dataType:'json', resetForm:false, success:showSuccess, error:showError, timeout:10000 } //提交表单 $(this).ajaxSubmit(options); // 为了防止普通浏览器进行表单提交和产生页面导航(防止页面刷新?)返回false return false; }); }); alert('方法执行到这儿了!!'); } } [/code] 涉及的页面: [code="html"] <form id="itemsForm" action="addGoodsItems.action" method="post"> <table> <tr> <td> 存货名称: </td> <td> <input type="text" name="goodsItems.goodsName" id="goodsName" class="baseline" value="${pcb.goodsItems.goodsName}" style="width: 150px;" /> <input type="button" value="选择存货" onclick="selectGoods()" /> </td> <td width="40px;"></td> <td> 存货地点: </td> <td> <input type="text" name="goodsItems.stockPlace" id="storage" class="baseline" value="${pcb.goodsItems.stockPlace}" style="width: 150px;" /> <input type="button" value="存货地点" onclick="selectPlace()" /> </td> </tr> <tr> <td> 物品数量: </td> <td> <c:choose> <c:when test="${goodsItems.amount == null}"> <input type="text" name="goodsItems.amount" id="amount" onfocus="onfocusSelect(this)" onblur="jsje()" style="text-align: right;" value="0" /> </c:when> <c:otherwise> <input type="text" name="goodsItems.amount" id="amount" onfocus="onfocusSelect(this)" onblur="jsje()" class="baseline" style="width: 50px; text-align: right;" value="${goodsItems.amount}" /> </c:otherwise> </c:choose> </td> <td></td> <td> 单价: </td> <td> <select id="priceType" name="goodsItems.priceType" onchange="selectPrice(this)" style="width: 100px;"> <c:choose> <c:when test="${pcbtype == 0 || pcbtype == 1}"> <option value="0"> 采购标准价 </option> <option value="1"> 采购最高价 </option> </c:when> <c:when test="${pcbtype == 2 || pcbtype == 3}"> <option value="2"> 销售标准价 </option> <option value="3"> 最低销售价 </option> </c:when> </c:choose> </select> <input type="text" id="price" name="goodsItems.price" onblur="jsje()" /> </td> <td width="10"></td> <td> 折扣率: </td> <td> <input type="text" id="discountRate" name="goodsItems.discountRate" style="text-align: right" onblur="jsje()" value="${pcb.goodsItems.discountRate}" /> </td> </tr> <tr> <td> 折扣额: </td> <td> <input type="text" id="zke" value="0.00" disabled="disabled" style="text-align: right" /> <input type="hidden" id="discount" name="goodsItems.discount" value="${goodsItems.discount}" /> </td> <td width="20"></td> <td> <c:choose> <c:when test="${pcbtype == 0 || pcbtype == 1}"> 采购额: </c:when> <c:when test="${pcbtype == 2 || pcbtype == 3}"> 销售额: </c:when> </c:choose> </td> <td> <input type="text" id="je" value="0.00" disabled="disabled" style="text-align: right" /> <input type="hidden" id="procureCellMoney" name="goodsItems.procureCellMoney" value="${goodsItems.procureCellMoney}" /> </td> <td colspan="4"></td> </tr> <tr> <td> 说明: </td> <td colspan="8"> <input type="text" id="notes" name="goodsItems.notes" style="width: 500px;" /> </td> </tr> <tr> <td colspan="9" align="right"> <input type="button" value="保存分录" onclick="addGoodsItems()" /> <input type="reset" value="重置" /> </td> </tr> </table> </from> [/code] action 代码: [code="java"] public String addGoodsItems(){ log.info("获得的存货名称是:"+goodsItems.getGoodsName()); log.info('这里面我准备将form表单中提交过来的数据存到session中去,如果,我提交采购单的话,才将session中的值取出来存到数据库中,session中我想的是存放一个goodsMap'); return "addItems"; } [/code] struts.xml 代码: [code="xml"] <package name="goodsItems" extends="json-default"> <action name="addGoodsItems" class="xxpcb" method="addGoodsItems"> <result name="addItems"> <!--<param name="includeProperties">goodsItemsMap.*</param>--> </result> </action> </package> [/code]
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的Tencent Kona JDK,分布式HTAP数据库 TBase,企业级容器平台TKEStack,以及高性能图计算框架Plato。短短一周之内,腾讯开源了五大重点项目。其中,TubeMQ是腾讯大数据平台部门应用的核心组件,...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问