js通过a标签点击获取外面的li的id
 "<ul>
<li id="a"><a>点击</a></li>
<li id="b"><a>提交</a></li>
</ul> "

怎么通过点击a标签获取li标签的id

4个回答

 <ul id="ul">
    <li id="a"><a>点击</a></li>
    <li id="b"><a>提交</a></li>
</ul> 
<script>
    document.getElementById('ul').onclick = function (e) {
        e = e || window.event;
        var o = e.srcElement || e.target;
        if (o.tagName == 'A') alert(o.parentNode.id)
        else if(o.tagName=='LI') alert(o.id)
    }
</script>

$("body").on("click", "ul li a", function () {
var id = $(this).parent().attr("id");
alert(id);
})

使用jquery绑定点击事件;
$(function(){
$("ul a").click(function(){
var id = $(this).closest("li").attr("id");
alert(id);
});
});

绑定onclick 事件不行吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
js点击获取li中a表签的值
``` <ul id="parent"> <li><a>Tree</a> <ul> <li><a href="#" >7777777777777</a></li> <li><a href="#">2222222222</a></li> <li><a href="#">333333333</a></li> <li><a href="#">4444444444</a></li> </ul> </li> </ul> ``` 点击第一个li是获取所有a标签的值,下面 的获取单个的值和第一个的值,怎么做,我现在之能获取单个值 不知道怎么判断第一个点击的是Tree获取所有的值
JS控制 li 标签的class值添加与删除
<div id="processor"> <ol class="processorBox oh"> <li class="current"> <div class="step_inner fl"> <span class="icon_step">1</span> <h4> 填写注册信息</h4> </div> </li> <li> <div class="step_inner"> <span class="icon_step">2</span> <h4> 公司信息</h4> </div> </li> <li> <div class="step_inner fr"> <span class="icon_step">3</span> <h4> 个人资料</h4> </div> </li> </ol> <div class="step_line"> </div> </div> <a id="nextBtn" class="btn btn_primary" href="javascript:;" >下一步</a> $('#nextBtn').click(function () { var i = $('.processorBox li').index(); $('.processorBox li').removeClass('current').eq(i).addClass('current'); $('.step').fadeOut(300).eq(i).fadeIn(500); } }); 点击下一步按钮时,触发onclick事件,将第一个li标签的class值删除,并在下一个li标签上添加class值,,以上是我自己写的,但是点击后没有反映,而且 var i 获取的值为0 ,,,求大神解决
html js 怎么把数据写入相应的id的标签里
一个标签的id为变量 怎么把相应的内容传到该标签内 str1 +="<li><span class='folder' id='" + obj.data[i].id + "'onclick='f(this.id)'>" + obj.data[i].name + "</span><ul id='s"+obj.data[i].id+"'></ul></li>" tree.innerHTML = str1; function f(id) { var str2=""; var ID="s"+id; var son =document.getElementById(ID); str2 += "<li><span class='folder'id='" + Obj.data[i].id+"'onclick='f(this.id)'>" + Obj.data[i].name+ "</span><ul id='s"+Obj.data[i].id+"'></ul></li>" son.innerHTML = str2; 将str1传给tree的结果: ![图片说明](https://img-ask.csdn.net/upload/201908/27/1566869479_186047.png) str2: ![图片说明](https://img-ask.csdn.net/upload/201908/27/1566869524_711996.png) 无法将str2传到我想要的id的ul标签下 点击事件获取span标签的id 为了区分 ul标签的id我加了一个s 打印son的结果: ![图片说明](https://img-ask.csdn.net/upload/201908/27/1566869956_421938.png) 请各位大佬帮我看看怎么解决 谢谢鸭
关于在struts1的logic:iterate标签中获取隐域的值的问题
<p>看代码先:</p> <p> </p> <pre name="code" class="jsp">&lt;logic:iterate id="ques" name="quesList" scope="request"&gt; &lt;li&gt; &lt;input type="hidden" name="quesId" value='&lt;bean:write name="ques" property="questionId"/&gt;'/&gt; &lt;a class="connect" href="javascript:<strong>getQuesId()</strong>;"&gt;&lt;bean:write name="ques" property="questionContext"/&gt;&lt;/a&gt; &lt;/li&gt; &lt;/logic:iterate&gt;</pre> <p> 假设,后台有个题目表,表中有n条数据,每条“题目”对应唯一的id。因为后台需要用到questionId,所以在点击超链接(即题目)时,想将questionId作为参数传到后台,<strong>注意,是每条“题目(questionContext)”所对应的questionId,而不是表中所有的questionId。</strong>而,跳转后的页面显示的是当前所点击的“题目”所对应的详细内容,如,选项、答案等。现在的问题是,怎样用js或jQuery实现,获取所迭代的每条数据所对应的questionId,并以参数的形式放到链接中传到后台?谢谢了先~</p> <p> </p>
jstl标签map中value读入<span>的值通过id在js中难以获取,求大神赐教!
jsp为上层for循环,key值可展示及传递,value只能展示不能传递,怎么解? 下面为源代码: javascript函数: ``` function trsubmit() { var aa = document.getElementById("test22"); alert(aa.innerHTML); } jsp主要代码: <c:forEach var="big" items="${applicationScope.bigMap}"> <!-- 栏目--> <div class="classBar"> <li style="list-style-type: square;color:#FFFFFF" >${big.key}</li> </div> <!-- 板块<String, HashMap<String, bbs_board>>--> <table border="0" cellspacing=0 bordercolor="lightgrey" bordercolorlight="lightgrey" bordercolordark="white"> <c:forEach var="small" items="${big.value}"> <tr > <form action="tiezi.do" method="post" id="trform"> <span onclick="trsubmit();"** id="test22"**>${small.key}</span> </form> <td style="text-align: center;" width="100px"> <img alt="" src="img/index/boardPic.jpg" style="margin-top: 40px"> </td> </tr> </c:forEach> </table> </c:forEach> ```
如何把如下的代码中的矩形标签形状改成五角星的形状
<!doctype html> <title>jquery多彩标签云选择效果</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js"></script> <style> ul,li{list-style:none;padding:0px;margin:0px} ul.cloud{zoom:1;overflow:hidden;width:300px} ul.cloud li{-moz-border-radius:6px;-webkit-border-radius:6px;background:#fff;border:solid 1px purple;color:purple;padding:5px;margin-bottom:15px;border-radius:6px;-khtml-border-radius:6px;float:left;margin:0 5px 5px 0;line-height:30px;font-size:14px;cursor:pointer} ul.cloud li:hover,ul.cloud li.Selected{background:purple;color:#fff} ul.cloud li.green{color:green;border-color:green} ul.cloud li.green:hover,ul.cloud li.greenSelected{background:green;color:#fff} ul.cloud li.blue{color:blue;border-color:blue} ul.cloud li.blue:hover,ul.cloud li.blueSelected{background:blue;color:#fff} </style> <ul class="cloud" id="ul"> <li>标签1</li> <li>标签2</li> <li>标签3</li> <li>标签4</li> <li>标签5</li> <li>标签6</li> </ul> <input type="button" value="获取选择标签内容" onclick="getTags()"/> <script> function rnd(min, max) { var tmp = min; if (max < min) { min = max; max = tmp; } return Math.floor(Math.random() * (max - min + 1) + min); } var arr = ['', 'blue', 'green']; $('#ul li') .attr('cls', function () { return this.className = arr[rnd(0, arr.length)]; })//随机分配样式 .click(function () { var cls = this.getAttribute('cls'), isSelected = this.className.indexOf('Selected') != -1; this.className = isSelected ? cls : cls + ' ' + cls+'Selected'; }); function getTags() { var tags = $('#ul li[class*="Selected"]').map(function () { return this.innerHTML }).get().join(','); alert(tags) } </script>
在此页面把标签形状设置成自己选择的图片形状
``` <!doctype html> <title>jquery多彩标签云选择效果</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js"></script> <style> ul,li{list-style:none;padding:0px;margin:0px} ul.cloud{zoom:1;overflow:hidden;width:300px} ul.cloud li{-moz-border-radius:6px;-webkit-border-radius:6px;background:#fff;border:solid 1px purple;color:purple;padding:5px;margin-bottom:15px;border-radius:6px;-khtml-border-radius:6px;float:left;margin:0 5px 5px 0;line-height:30px;font-size:14px;cursor:pointer} ul.cloud li:hover,ul.cloud li.Selected{background:purple;color:#fff} ul.cloud li.green{color:green;border-color:green} ul.cloud li.green:hover,ul.cloud li.greenSelected{background:green;color:#fff} ul.cloud li.blue{color:blue;border-color:blue} ul.cloud li.blue:hover,ul.cloud li.blueSelected{background:blue;color:#fff} </style> <ul class="cloud" id="ul"> <li>标签1</li> <li>标签2</li> <li>标签3</li> <li>标签4</li> <li>标签5</li> <li>标签6</li> </ul> <input type="button" value="获取选择标签内容" onclick="getTags()"/> <script> function rnd(min, max) { var tmp = min; if (max < min) { min = max; max = tmp; } return Math.floor(Math.random() * (max - min + 1) + min); } var arr = ['', 'blue', 'green']; $('#ul li') .attr('cls', function () { return this.className = arr[rnd(0, arr.length)]; })//随机分配样式 .click(function () { var cls = this.getAttribute('cls'), isSelected = this.className.indexOf('Selected') != -1; this.className = isSelected ? cls : cls + ' ' + cls+'Selected'; }); function getTags() { var tags = $('#ul li[class*="Selected"]').map(function () { return this.innerHTML }).get().join(','); alert(tags) } </script> ```
easyui的tab切换跟显示问题。来大神。跪求!
1.easyui的选项卡,点击第一个链接a创建第一个tab成功,内容正常显示。再点击第二个链接b,创建第二个tab。但是不会切到第二个tab窗口,并且内容还是第一个tab的,只有在二次点击链接b才会切换过去,内容刷新成对应的 js代码如下: ``` $(function(){ $('a[target=iframe]').click(function(){ var self=$(this); if($("#tabs").tabs("exists",self.text()) ){ $("#tabs").tabs("select",self.text());//获取选中的 var tab=$('#tabs').tabs('getSelected');//获得当前的tab var index = $('#tt').tabs('getTabIndex',tab);//获取指定的标签页索引 }else{ $("#tabs").tabs('add',{ title:self.text(), fit:true, closable:true,//在tab上加一个关闭按钮 href:self.attr("_href"), cache:false, }); } ``` html的代码: ``` <div id="west" region="west" style="width: 200px;background-color: #e3e3e3" title="导航菜单" split="true"> <div id="nav" style="padding-top:2px;"> <ul> <li style="font-size:23px; "><a href="javascript:;" _href="operator.html" target="iframe">操作员管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="customer.html" target="iframe">顾客管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="supplier.html" target="iframe">供应商管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="product.html" target="iframe">商品管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="inwarehouse.html" target="iframe">入库管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="outwarehouse.html" target="iframe">出库管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="warehouse.html" target="iframe">仓库管理</a></li> <li style="font-size:23px;"><a href="javascript:;" _href="stock.html" target="iframe">库存管理</a></li> </ul> </div> ``` 对了。在二次点击链接b的时候会报这个错,但是结果是没问题的 ![图片说明](https://img-ask.csdn.net/upload/201904/07/1554616385_931159.png)
[能不能实现?] struts2 访问首页数据动态加载
思路是: 首页index.jsp,动态加载数据的action: loadIndex.action 在访问index.jsp时,执行loadIndex.action,由action得到数据库中数据后,[color=red][b]仍然将数据返回给index.jsp[/b][/color]由index.jsp显示数据. [b]问题补充:[/b] 谢谢3位的回答, lovewhzlq (CTO) 大大, 我尝试用ExtJs实现Ajax提交, [code="java"] Ext.onReady(function() { window.location.href = 'loadindex.action?id=xxxx; } );[/code] 却无法避免重复执行action的问题,变成死循环了. 有什么办法能让它只执行一次呢? 就像Ext.data.Store那样只load一次. [b]问题补充:[/b] 确实是, Ext里有无可以用来调用url的东东呢? [code="java"] Ext.Ajax.request({ url : 'loadindex.action?id=xxx }); [/code] ? [b]问题补充:[/b] 感谢 lovewhzlq (CTO) 大大, 我现在已经可以成功提交ajax请求去执行loadIndex.action了. [code="java"] Ext.onReady(function() { Ext.Ajax.request({ url : 'loadindex.action?id=LiteonIT' }); }); [/code] 可是发现执行完后返回的数据struts2标签无法识别? 我在firebug下可以看到数据库的返回数据. 但是用<s:itrator>之类的标签却得不到数据,页面空白. 是否跟Ext.Ajax.request返回的数据格式有关? [b]问题补充:[/b] [code="java"][/code]谢谢. index.jsp [code="xml"] <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!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> <title>Tools Shop</title> <link rel="stylesheet" type="text/css" href="css/style.css" /> <script type="text/javascript" src="js/boxOver.js"></script> <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext/ext-all.js"></script> <script type="text/javascript" src="ext-lang-zh_CN.js"></script> <script type="text/javascript" src="js/loadIndex.js"></script> </head> <body> <div id="main_container"> <div id="header"> <div class="top_right"> <div class="languages"> <div class="lang_text"> Languages: </div> <a href="#" class="lang"><img src="images/en.gif" alt="" title="" border="0" /> </a> <a href="#" class="lang"><img src="images/de.gif" alt="" title="" border="0" /> </a> </div> <div class="big_banner"> <a href="#"><img src="images/banner728.jpg" alt="" title="" border="0" /> </a> </div> </div> <!-- Company Logo here --> <div id="logo"> <s:iterator id="company" value="cpy"> <img src="images/<s:property value="logo"/>" /> </s:iterator> </div> </div> <div id="main_content"> <div id="menu_tab"> <ul class="menu"> <li> <a href="index.jsp" class="nav"> Home </a> </li> <li class="divider"></li> <li> <a href="#" class="nav">Products</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">News</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">My account</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">Sign Up</a> </li> <li class="divider"></li> <li> <a href="contact.jsp" class="nav">Contact Us</a> </li> </ul> </div> <!-- end of menu tab --> <div class="crumb_navigation"> Navigation: <span class="current">Home</span> </div> <div class="left_content"> <div class="title_box"> Shotcut </div> <ul class="left_menu"> <!-- Company quick link here --> <li class="odd"> <!-- add tag # here --> <a href="index.jsp#cpypic">Company Picture</a> </li> <li class="even"> <a href="index.jsp#cpydesc">EnterPrise Introduce</a> </li> <!-- Company detail shotcut --> <s:iterator value="cpydetail" status="index"> <s:if test="#index.odd == true"> <li class="odd"> </s:if> <s:else> <li class="even"> </s:else> <a href="loadindex.action?id=LiteonIT#<s:property value=" id"/>"> <s:property value="name" /> </s:iterator> </ul> <div class="title_box"> Newsletter </div> <div class="border_box"> <input type="text" name="newsletter" class="newsletter_input" value="your email" /> <a href="#" class="join">subscribe</a> </div> </div> <!-- end of left content --> <div class="center_content"> <div class="oferta"> <div class="oferta_details"> <!-- Company Name,Picture and Description here --> <s:iterator value="cpy"> <div class="oferta_title"> Company Name </div> <div class="oferta_text_bold"> <s:property value="name" /> </div> <div class="oferta_title"> Company Picture <a name="cpypic"></a> </div> <div class="oferta_text"> <img src="images/<s:property value="picture"/>" width=540 height=250 /> </div> <div class="oferta_title"> Company Description <a name="cpydesc"></a> </div> <div class="oferta_text"> <s:property value="description" /> </div> </s:iterator> <!-- Company Detail here --> <s:iterator value="cpydetail"> <div class="oferta_title"> <s:property value="name" /> <a name="<s:property value="id" />"></a> </div> <div class="oferta_text"> <s:property value="value" /> </div> </s:iterator> </div> </div> </div> <!-- end of center content --> <div class="right_content"> <div class="title_box"> Search </div> <div class="border_box"> <input type="text" name="newsletter" class="newsletter_input" value="keyword" /> <a href="#" class="join">search</a> </div> <div class="title_box"> Friendly Link </div> <ul class="left_menu"> <s:iterator id="fl" value="friendlylink" status="index"> <s:if test="#index.odd == true"> <li class="odd"> </s:if> <s:else> <li class="even"> </s:else> <a href="http://<s:property value="fl"/>"> <s:property value="fl" /> </a> </li> </s:iterator> </ul> </div> <!-- end of right content --> </div> <!-- end of main content --> <div class="footer"> <div class="left_footer"> <img src="images/footer_logo.png" alt="" title="" width="89" height="42" /> </div> <div class="center_footer"> Template name. All Rights Reserved 2009 <br /> <img src="images/payment.gif" alt="" title="" /> </div> <div class="right_footer"> <a href="index.jsp">home</a> <a href="details.jsp">about</a> <a href="details.jsp">sitemap</a> <a href="details.jsp">rss</a> <a href="contact.jsp">contact us</a> </div> </div> <!-- end of footer --> </div> <!-- end of main_container --> </body> </html> [/code] loadIndex.js: [code="java"] Ext.onReady(function() { Ext.Ajax.request({ url : 'loadindex.action?id=LiteonIT' }); }); [/code] struts.xml: [code="java"] <action name="loadindex" class="companyInfoAction" method="loadCompanyInfo"> <result name="success">/index.jsp</result> </action> companyInfoAction: [code="java"][/code] public String loadCompanyInfo() { this.setCpy(ci.getCompanyInfo(this.getId())); this.setCpydetail(ci.getCompanyDetail(this.getId())); this.setFriendlylink(ci.getFriendlyLink(this.getId())); System.out.println("I am running"); return SUCCESS; } [/code] 访问index.jsp时可以看到System.out.println("I am running");执行了,firebug下也可以看到数据返回. [b]问题补充:[/b] index.jsp: [code="xml"] <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!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> <title>Tools Shop</title> <link rel="stylesheet" type="text/css" href="css/style.css" /> <script type="text/javascript" src="js/boxOver.js"></script> <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext/ext-all.js"></script> <script type="text/javascript" src="ext-lang-zh_CN.js"></script> <script type="text/javascript" src="js/loadIndex.js"></script> </head> <body> <div id="main_container"> <div id="header"> <div class="top_right"> <div class="languages"> <div class="lang_text"> Languages: </div> <a href="#" class="lang"><img src="images/en.gif" alt="" title="" border="0" /> </a> <a href="#" class="lang"><img src="images/de.gif" alt="" title="" border="0" /> </a> </div> <div class="big_banner"> <a href="#"><img src="images/banner728.jpg" alt="" title="" border="0" /> </a> </div> </div> <!-- Company Logo here --> <div id="logo"> <s:iterator id="company" value="cpy"> <img src="images/<s:property value="logo"/>" /> </s:iterator> </div> </div> <div id="main_content"> <div id="menu_tab"> <ul class="menu"> <li> <a href="index.jsp" class="nav"> Home </a> </li> <li class="divider"></li> <li> <a href="#" class="nav">Products</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">News</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">My account</a> </li> <li class="divider"></li> <li> <a href="#" class="nav">Sign Up</a> </li> <li class="divider"></li> <li> <a href="contact.jsp" class="nav">Contact Us</a> </li> </ul> </div> <!-- end of menu tab --> <div class="crumb_navigation"> Navigation: <span class="current">Home</span> </div> <div class="left_content"> <div class="title_box"> Shotcut </div> <ul class="left_menu"> <!-- Company quick link here --> <li class="odd"> <!-- add tag # here --> <a href="index.jsp#cpypic">Company Picture</a> </li> <li class="even"> <a href="index.jsp#cpydesc">EnterPrise Introduce</a> </li> <!-- Company detail shotcut --> <s:iterator value="cpydetail" status="index"> <s:if test="#index.odd == true"> <li class="odd"> </s:if> <s:else> <li class="even"> </s:else> <a href="loadindex.action?id=LiteonIT#<s:property value=" id"/>"> <s:property value="name" /> </s:iterator> </ul> <div class="title_box"> Newsletter </div> <div class="border_box"> <input type="text" name="newsletter" class="newsletter_input" value="your email" /> <a href="#" class="join">subscribe</a> </div> </div> <!-- end of left content --> <div class="center_content"> <div class="oferta"> <div class="oferta_details"> <!-- Company Name,Picture and Description here --> <s:iterator value="cpy"> <div class="oferta_title"> Company Name </div> <div class="oferta_text_bold"> <s:property value="name" /> </div> <div class="oferta_title"> Company Picture <a name="cpypic"></a> </div> <div class="oferta_text"> <img src="images/<s:property value="picture"/>" width=540 height=250 /> </div> <div class="oferta_title"> Company Description <a name="cpydesc"></a> </div> <div class="oferta_text"> <s:property value="description" /> </div> </s:iterator> <!-- Company Detail here --> <s:iterator value="cpydetail"> <div class="oferta_title"> <s:property value="name" /> <a name="<s:property value="id" />"></a> </div> <div class="oferta_text"> <s:property value="value" /> </div> </s:iterator> </div> </div> </div> <!-- end of center content --> <div class="right_content"> <div class="title_box"> Search </div> <div class="border_box"> <input type="text" name="newsletter" class="newsletter_input" value="keyword" /> <a href="#" class="join">search</a> </div> <div class="title_box"> Friendly Link </div> <ul class="left_menu"> <s:iterator id="fl" value="friendlylink" status="index"> <s:if test="#index.odd == true"> <li class="odd"> </s:if> <s:else> <li class="even"> </s:else> <a href="http://<s:property value="fl"/>"> <s:property value="fl" /> </a> </li> </s:iterator> </ul> </div> <!-- end of right content --> </div> <!-- end of main content --> <div class="footer"> <div class="left_footer"> <img src="images/footer_logo.png" alt="" title="" width="89" height="42" /> </div> <div class="center_footer"> Template name. All Rights Reserved 2009 <br /> <img src="images/payment.gif" alt="" title="" /> </div> <div class="right_footer"> <a href="index.jsp">home</a> <a href="details.jsp">about</a> <a href="details.jsp">sitemap</a> <a href="details.jsp">rss</a> <a href="contact.jsp">contact us</a> </div> </div> <!-- end of footer --> </div> <!-- end of main_container --> </body> </html> [/code] [b]问题补充:[/b] index.jsp中 第150行开始用struts2标签获取数据库数据. [b]问题补充:[/b] loadIndex.js的内容如下 window.location.href = 'loadindex.action?id=xxxx'; 这里是不是应该用ajax 请求啊,直接window.location.href 的话会重复执行,进入死循环. <script type="text/javascript" src="js/loadIndex.js"></script> 放在 <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext/ext-all.js"></script> <script type="text/javascript" src="ext-lang-zh_CN.js"></script> 之前的话, ExtJs识别不了吧? [b]问题补充:[/b] 再次感谢lovewhzlq (CTO)大大的热心回复. 其实我现在就是用2个页面做的,一个configIndex.jsp,一个index.jsp.在configIndex中提交action,转到index.jsp. 之所以搞得这么麻烦,主要是为了避免用户直接通过地址栏访问index.jsp的时候出不来数据的问题. 现在问题其实已经解决了一大半拉.用ajax提交action后可以看到执行了一次,数据库数据返回也有,反而是struts2标签失效了,很纳闷. [b]问题补充:[/b] 其实web程序对用户直接用地址访问页面的做法都比较难处理.不知道是否有好的方式避免掉这种问题. [b]问题补充:[/b] 感谢energykey兄的回答,鄙视 得好. 也就是说, ajax请求的返回,只能用response.responseText或者json来获取, struts2标签是不行的了.它们是2条路的人. 因为ajax是异步的请求, struts2走的路是A的话,ajax的请求走的是B?
请求大佬支援!!!jQuery:为什么我的index()索引得到的结果都是偶数?
**我的index1和index2得到的都是偶数** ![图片说明](https://img-ask.csdn.net/upload/201905/06/1557128639_655362.png) ``` <!doctype html> <html> <head> <meta charset="utf-8"> <title>淘宝服装精品</title> <script src="jquery-1.11.1.min.js"></script> <style> *{/*清除原有页面所有边距*/ margin:0; padding:0; } div{/*定义left盒子*/ width: 500px; height: 500px; margin: 150px auto; border: 1px solid red; } #ulleft{ width: 50px; border-right: 1px solid red;/*添加左垂直分隔线*/ } #ulleft,#ulcenter{ float: left; } #ulright{ float: right; width: 50px; border-left:1px solid red;/*添加右垂直分隔线*/ } ul{ list-style: none;/*去除小圆点*/ } a{/*a标签处理*/ width: 50px; height: 98px; line-height: 100px;/*设置行高*/ text-align: center; display: block;/*设置为块级元素*/ text-decoration: none;/*去除下划线*/ } img{ width: 400px; height: 500px; /* display: none;隐藏图片*/ } </style> </head> <body> <div> <ul id="ulleft"> <li><a href="#">0</a></li><hr> <li><a href="#">1</a></li><hr> <li><a href="#">2</a></li><hr> <li><a href="#">3</a></li><hr> <li><a href="#">4</a></li> </ul> <ul id="ulcenter"> <li><a href="#"><img src="../../../图片/一个人⭕⭕的小日子/2.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/一个人⭕⭕的小日子/5.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/鬼灭之刃/2.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/10.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/9.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/8.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/7.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/6.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/5.png" alt=""></a></li> <li><a href="#"><img src="../../../图片/黄昏少女/3.png" alt=""></a></li> </ul> <ul id="ulright"> <li><a href="#">5</a></li><hr> <li><a href="#">6</a></li><hr> <li><a href="#">7</a></li><hr> <li><a href="#">8</a></li><hr> <li><a href="#">9</a></li> </ul> </div> </body> <script> // 需求1:给左边的li设置鼠标移入事件,让中间索引对应的li显示,其他的li隐藏 // 需求1:给右边的li设置鼠标移入事件,让中间索引对应的li显示,其他的li隐藏 $(function(){ // 需求1: $('#ulleft').find('li').mouseenter(function(){ var index1 = $(this).index();//获取当前鼠标移入的li标签索引(即为第几个li标签) console.log(index1); // 让中间索引对应的li显示,其他的li隐藏 $('#ulcenter li').eq(index1).show().siblings('li').hide(); }); $('#ulright').find('li').mouseenter(function(){ var index2 = $(this).index(); console.log(index2); $('#ulcenter li').eq(index2).show().siblings('li').hide(); }); }); </script> </html> ```
input标签内已经存在onkeyup("带有参数")事件,如何判断按的键是回车键?
``` <input type="text" id="'+inputId+'View" class="input_box_pull" value="全部产品" onkeyup="fuzzyQuery($(this),\''+WidgetId+'\',\''+inputId+'\');" onfocus="selectValue($(this));"/> ``` ``` function fuzzyQuery($_this, target, inputId) { var values =$_this.val(); values = values.toUpperCase(); var reg = new RegExp(values); var html = ""; html += '<li><a href="javascript:;" onclick="setInput_box_pull($(this),\''+inputId+'\',\''+''+'\');">全部产品</a></li>'; $.each(fuzzyQueryMap.data, function(key, value) { if (value.indexOf(values)!=-1) { value = value.replace(reg, "<span style='color:#ff4646'>" + values + "</span>"); html += '<li><a href="javascript:;" onclick="setInput_box_pull($(this),\''+inputId+'\',\''+key+'\');">'+value+'</a></li>'; } }); $("#"+target+" .p_c_box").html(html); } ``` 如何在上面这个fuzzyQuery($_this, target, inputId)这个方法中获取按键的值 ?
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版本有关啊?
初学python爬虫,好像是selenium的错,len(),希望大神们提点一下
初学python爬虫,好像是selenium的错,报了个TypeError: object of type 'WebElement' has no len(),希望点大神们提点一下 下面是代码: from selenium import webdriver import csv #网易云音乐歌单第一页的url url='http://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=0' #用PhantomJS接口创建一个Selenium的webdriver driver=webdriver.PhantomJS() #准备好存储歌单csv csv_file=open("playlist.csv","w",newline='') writer=csv.writer(csv_file) writer.writerow(['标题','播放数','链接']) #解析每一页,直到‘下一页’为空 while url!='javascript:void(0)': #用webDriver加载页面 driver.get(url) #切换到内容的iframe driver.switch_to.frame("contentFrame") #定位歌单标签 data=driver.find_element_by_id("m-pl-container").find_element_by_tag_name("li") #解析一页中所有歌单 for i in range(len(data)): #获取播放数 nb=data[i].find_element_by_tag_name("nb").text if '万' in nb and int(nb.split("万")[0])>500: #获取播放数大于500万的歌单的封面 msk=data[i].find_element_by_css_selector("a.msk") #把封面上的标题和链接连同播放数一起写到文件中 writer.writerow([msk.get_attribute('title'), nb,msk.get_attribute('href')]) #定位'下一页'的url url=driver.find_element_by_css_selector("a.zbtn.znxt").get_attribute('href') csv_file.close()
JavaScript 参数this问题
``` <script type="text/javascript"> var get = { byId: function(id) { return document.getElementById(id) }, byClass: function(sClass, oParent) { var aClass = []; var reClass = new RegExp("(^| )" + sClass + "( |$)"); var aElem = this.byTagName("*", oParent); for (var i = 0; i < aElem.length; i++) reClass.test(aElem[i].className) && aClass.push(aElem[i]); return aClass }, byTagName: function(elem, obj) { return (obj || document).getElementsByTagName(elem) } }; window.onload = function () { var oNav = get.byId("nav"); var aLi = get.byTagName("li", oNav); var aSubNav = get.byClass("subnav", oNav); var oSubNav = oEm = timer = null; var i = 0; for (i = 1; i < aLi.length; i++) { aLi[i].onmouseover = function () { //隐藏所有子菜单 for (i = 0; i < aSubNav.length; i++)aSubNav[i].style.display = "none"; //获取该项下的子菜单 oSubNav = get.byClass("subnav", this)[0]; //获取该项下的指示箭头 oEm = get.byTagName("em", this)[0]; //显示该项下的子菜单 oSubNav.style.display = "block"; //判断显示区域 oNav.offsetWidth - this.offsetLeft > oSubNav.offsetWidth ? //如果在显示范围居左显示 oSubNav.style.left = this.offsetLeft + "px" : //超出显示范围居右显示 oSubNav.style.right = 0; //计算指标箭头显示位置 oEm.style.left = this.offsetLeft - oSubNav.offsetLeft + 50 + "px"; clearTimeout(timer); //阻止事件冒泡 oSubNav.onmouseover = function (event) { (event || window.event).cancelBubble = true; clearTimeout(timer) } }; aLi[i].onmouseout = function () { timer = setTimeout(function () { oSubNav.style.display = "none" },300) } } }; </script> **_var aElem = this.byTagName("*", oParent); 这句的意思是获取oParent下的所有标签 但这句中的this指向的对象是什么?,我感觉this没什么作用**_ ```
菜单列表的收缩和重复的问题。。。。醉了。。
![图片说明](https://img-ask.csdn.net/upload/201709/29/1506649646_900565.png) ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script language="JavaScript" src="js/jquery.js"></script> <script type="text/javascript"> $(function(){ //导航切换 $(".menuson .header").click(function(){ var $parent = $(this).parent(); $(".menuson>li.active").not($parent).removeClass("active open").find('.sub-menus').hide(); $parent.addClass("active"); if(!!$(this).next('.sub-menus').size()){ if($parent.hasClass("open")){ $parent.removeClass("open").find('.sub-menus').hide(); }else{ $parent.addClass("open").find('.sub-menus').show(); } } }); // 三级菜单点击 $('.sub-menus li').click(function(e) { $(".sub-menus li.active").removeClass("active") $(this).addClass("active"); }); $('.title').click(function(){ var $ul = $(this).next('ul'); $('dd').find('.menuson').slideUp(); if($ul.is(':visible')){ $(this).next('.menuson').slideUp(); }else{ $(this).next('.menuson').slideDown(); } }); }) </script> <script> //页面载入加载所有的一级菜单 $(function(){ //从session作用域中获取当前用户的角色id(rid) var rid = ${UserInfo.role.rid}; //利用jquery的ajax去数据库中查询所有的一级菜单 $.get("user.action",{operation:'loadMenu',rid:rid,pmid:0},function(result){ //判断result非空 if(result != ""){ //将json字符串数组转换成json对象数组 var menuList = JSON.parse(result); //遍历menuList if(menuList.length>0){ for(var i=0;i<menuList.length;i++){ var menu = menuList[i]; //在菜单选项显示部分添加一级菜单 $("#lm").append("<dd><div class='title' onclick='load("+rid+","+menu.mid+");'><span><img src='images/leftico04.png' /></span>"+menu.mname+"</div><ul class='menuson' id='"+menu.mid+"'></ul></dd>"); } } } }); }); //当单击一级菜单时加载二级菜单 function load(userRid,pmid){ var $ul = $(this).next('ul'); $('dd').find('.menuson').slideUp(); if($ul.is(':visible')){ $(this).next('.menuson').slideUp(); }else{ $(this).next('.menuson').slideDown(); } //清空ul标签内容 $("#"+pmid).empty();--------------------------这个就是表明需要清空以前看过的菜单意思就是不会出现重复的菜单。。但是一开始这个是可以的,后来不知道为甚什么不起作用了。。 //利用ajax查询二级菜单内容 $.get("user.action",{operation:'loadMenu',rid:userRid,pmid:pmid},function(result){ //判断result非空 if(result != ""){ //将json字符串数组转换成json对象数组 var menuList = JSON.parse(result); //遍历menuList if(menuList.length>0){ for(var i=0;i<menuList.length;i++){ var menu = menuList[i]; //在菜单选项显示部分添加二级菜单 $("#"+pmid).append("<li><cite></cite><a href='"+menu.url+"' target='rightFrame'>"+menu.mname+"</a><i></i></li>"); } } } }); $("#"+pmid).slideDown(); } </script> </head> <body style="background:#f0f9fd;"> <div class="lefttop"><span></span>系统功能</div> <dl class="leftmenu" id="lm"> <!-- <dd><div class="title"><span><img src="images/leftico04.png" /></span>用户管理</div> <ul class="menuson"> <li><cite></cite><a href="#">查询所有用户信息</a><i></i></li> <li><cite></cite><a href="#">添加用户信息</a><i></i></li> <li><cite></cite><a href="#">其他</a><i></i></li> </ul> </dd> --> </dl> </body> </html> ``` 一开始好好的,那个清空ul的标签内容是可以运行的,菜单不会重复,但是不知道后来怎么了,就变得开始重复了。。。。 ``` ![图片说明](https://img-ask.csdn.net/upload/201709/29/1506649336_264881.png) 不清楚这是怎么了,为什么突然间代码不起作用了。。??
为什么flask启动方式影响项目投票功能运行结果?
  前两天跟着视频写了个flask投票功能代码,利用长轮询实现票数实时更新,结果不是我想要的结果,票数总是等到夯住超时才能更新,通过浏览器F12键网络追踪,发现点击投票也能立即响应,但原先夯住的线程继续被夯住。又从网上找的投票功能代码,尝试还是如此,坑了很久才知道是启动方式不同引起的。因为我是在已经有的项目中加的投票功能,而这个项目调试启动是命令行:python manage.py runserver,结果就出现以上问题。没办法将它分离出来,单独运行又正常,后来再加上Manager,使用命令行启动python manage.py runserver,还是不能实时更新票数。发现只要不是Manager托管启动就没问题,实在不知什么原因?请大神指点。 manage.py: ``` from flask import Flask, render_template, session, request, jsonify import queue import uuid from flask_script import Manager app = Flask(__name__) app.secret_key = str(uuid.uuid4()) manager=Manager(app) USERS = { '1': {'name': '小黑', 'count': 1}, '2': {'name': '小胖', 'count': 0}, '3': {'name': '小铁锤', 'count': 0}, } QUEUE_DICT = { # 'uuid': Queue()队列 格式 } @app.route("/user/list") def user_list(): user_uuid = str(uuid.uuid4()) # 生成用户随机字符串 QUEUE_DICT[user_uuid] = queue.Queue() # 引用队列消息 session["current_user_uuid"] = user_uuid # session存放uuid字符串 return render_template("vote.html", users=USERS) @app.route("/vote", methods=["POST"]) def vote(): uid = request.form.get('uid') # 获取uuid值 USERS[uid]['count'] += 1 # 让字典中的值自增 for q in QUEUE_DICT.values(): # 循环获取队列中的值并添加到USERS q.put(USERS) return "投票成功" @app.route("/get/vote", methods=["get"]) def get_vote(): user_uuid = session["current_user_uuid"] # 获取session中的存储的uuid值 q = QUEUE_DICT[user_uuid] # 获取字典中uuid对应的Q() ret = {"status": True, "data": None} # 返回状态码 try: users = q.get(timeout=5) # 异常就夯(hang)住5秒 ret["data"] = users except queue.Empty: ret["status"] = False return jsonify(ret) if __name__ == '__main__': manager.run() ``` vote.html: ``` <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width initial-scale=1.0"> <title>Title</title> <style> li{cursor: pointer; background-color: dodgerblue; margin: 10px; padding: 10px; list-style-type: none; text-align: center; font-size: 18px; } </style> </head> <body> <ul id="userList"> {% for key, val in users.items() %} <li uid="{{ key }}">{{ val.name }}({{ val.count }})</li> {% endfor %} </ul> <script src="https://cdn.bootcss.com/jquery/3.3.0/jquery.min.js"></script> <script> // 给后台提交点击增加请求 $(function(){ $("#userList").on("click", "li", function () { var uid = $(this).attr("uid"); // 找到id $.ajax({ url: "/vote", type: "POST", data: {uid:uid}, success:function (arg) { console.log(arg); } }) }); get_vote(); // 清空页面显示增加数据 }); // 获取投票信息 function get_vote(){ $.ajax({ url: "/get/vote", type: "GET", dataType: "JSON", // 获取json的数据格式 success:function (arg) { if(arg.status){ $("#userList").empty(); // 清空页面 $.each(arg.data, function (k, v) { // 循环 var li = document.createElement("li"); // 生成li标签 li.setAttribute("uid", k); // 设置属性uid=k li.innerText = v.name + "(" + v.count + ")"; // 拼接内容 $("#userList").append(li); }) } get_vote(); // 和前面的调用形成循环 } }) } </script> </body> </html> ```
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
我在支付宝花了1分钟,查到了女朋友的开房记录!
在大数据时代下,不管你做什么都会留下蛛丝马迹,只要学会把各种软件运用到极致,捉奸简直轻而易举。今天就来给大家分享一下,什么叫大数据抓出轨。据史料证明,马爸爸年轻时曾被...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
使用 Python 和百度语音识别生成视频字幕
文章目录从视频中提取音频根据静音对音频分段使用百度语音识别获取 Access Token使用 Raw 数据进行合成生成字幕总结 从视频中提取音频 安装 moviepy pip install moviepy 相关代码: audio_file = work_path + '\\out.wav' video = VideoFileClip(video_file) video.audio.write_...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
Python全栈 Linux基础之3.Linux常用命令
Linux对文件(包括目录)有很多常用命令,可以加快开发效率:ls是列出当前目录下的文件列表,选项有-a、-l、-h,还可以使用通配符;c功能是跳转目录,可以使用相对路径和绝对路径;mkdir命令创建一个新的目录,有-p选项,rm删除文件或目录,有-f、-r选项;cp用于复制文件,有-i、-r选项,tree命令可以将目录结构显示出来(树状显示),有-d选项,mv用来移动文件/目录,有-i选项;cat查看文件内容,more分屏显示文件内容,grep搜索内容;>、>>将执行结果重定向到一个文件;|用于管道输出。
​两年前不知如何编写代码的我,现在是一名人工智能工程师
全文共3526字,预计学习时长11分钟 图源:Unsplash 经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗? 任何时候努力都不算晚。 下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述) 图源:Unsplash 正如Elsa所说,职业转换是...
强烈推荐10本程序员必读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
立即提问