JQuery实现选择特定楼层回复
JQuery实现选择特定楼层回复
需求:
一个论坛里面的小功能,除了回复帖子之外,也能够回复帖子以下的回复。详细实现细节:
- 每个回复有一个“回复”按钮,点击按钮实现:
- 在form表单里面加入一个input元素,内容是须要回复的楼层数,这样post过去之后才干在后台处理;
- 在回复内容的textarea里面加入文字“回复x楼:”
接下来就是详细实现了。无疑仅仅能用JS_(:з」∠)_,又是每次到了这时候才暂时各种百度怎么用…
获取楼层数
在button上绑定了一个function
<button class="btn btn-primary" onclick="cause_reply(this)">回复</button>
<p>{{reply.floor_num}}楼 {{reply.author.username}} at {{reply.time}}</p>
最開始我没有放this在里面,仅仅是写了个方法。后来发现这种话不同的楼层结构都是相似的。没有办法获取到楼层数,仅仅能用this确定button的详细位置,然后从button找到楼层数。
实际上仅仅用了一行,思路是获取button的兄弟元素p然后截取字符串,用原生js的时候一直出问题,nextSibling获取到的是[object text],然后这个text的内容又显示不出来,后来百度了半天可能是firefox的原因,把button后面的换行也作为一个元素,于是就获取不到内容,最后用jquery攻克了。
var reply_floor=$(obj).next().text().substr(0,1);
form的结构:
<form class="form-horizontal panel col-md-10 col-md-offset-1 container" method="POST" action="/forum/post/">{% csrf_token %}
<div class="form-group col-md-12">
<label class="control-label" for="exampleContent"></label>
<br/><br/>
<textarea rows="6" name="content" class="form-control" id="exampleContent" placeholder=""></textarea>
</div>
<div class="form-group col-md-4" id="post_field">
<input type="hidden" name="post_type" value="post_reply"/>
<input type="hidden" name="post_id" value="{{post.id}}"/>
<input type="submit" class="btn btn-lg btn-primary" value="回帖"/>
</div>
</form>
加入文字内容
相同一行解决:
$("textarea").append("回复"+reply_floor+"楼:");
添加input元素
var new_inp=document.createElement("input");
new_inp.setAttribute("type", "hidden");
new_inp.setAttribute("id", "reply_id");
new_inp.setAttribute("name", "reply_id");
new_inp.setAttribute("value", reply_floor);
$('#post_field').append(new_inp);
差点儿相同就是这样。然后另一个就是。假设先点击过一个楼层的回复,又点击了另外一个楼层。对应的前一个就要清除掉,改成最后操作的楼层。所以加了一个推断过程。最后所有代码是这样:
function cause_reply(obj){
if($("#reply_id").length>0){
$("#reply_id").remove();
$("textarea").empty();
}
var new_inp=document.createElement("input");
var reply_floor=$(obj).next().text().substr(0,1);
new_inp.setAttribute("type", "hidden");
new_inp.setAttribute("id", "reply_id");
new_inp.setAttribute("name", "reply_id");
new_inp.setAttribute("value", reply_floor);
$('#post_field').append(new_inp);
$("textarea").append("回复"+reply_floor+"楼:");
}
JQuery实现选择特定楼层回复的更多相关文章
- JQUERY 模糊选择
JQUERY 模糊选择 [属性名称] 匹配包含给定属性的元素 [att=value] 匹配包含给定属性的元素 [att*=value] ...
- jQuery模糊选择
属性字头选择器(Attribute Contains Prefix Selector) jQuery 属性字头选择器的使用格式是 jQuery(‘[attribute|=value]‘) ,例如 jQ ...
- jQuery中获取特定顺序子元素(子元素种类不定)的方法
提出问题:只已知父元素和父元素中子元素的次序,怎么通过jQuery方法获得该元素? <p>第一部分:</p> <ul> <li>1</li> ...
- 贴近用户体验的jQuery日期选择插件
分享一款贴近用户体验的jQuery日期选择插件.这是一款双日历jQuery日期选择时间插件pickerDateRange.效果图如下: 在线预览 源码下载 var dateRange = new ...
- jquery中选择checkbox拼接成字符串,然后到后台拆分取值
jquery中选择checkbox拼接成字符串,然后到后台拆分取值 js中的代码 $("#btn").click(function(){ var chenked=$("i ...
- 基于jQuery商品分类选择提交表单代码
分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览 源码下载 实现的代码: <div class="yList ...
- jQuery应用之(二)使用jQuery管理选择结果(荐)
使用jQuery选择出来的元素与数组非常类似,可以通过jQuery提供的一系列方法对其进行处理,包括长度.查找某个元素,截取某个段落等. 1.获取元素的个数. 在jQuery中可以通过size()方法 ...
- jquery取消选择select下拉框
有三个select下拉框一个大类,两个小类隐藏,需要在选择大类的时候,小类显示同时清除另外的小类选择的项这需求有点儿.......... 下面是三个select: <select name=&q ...
- jquery input选择弹框
index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...
随机推荐
- 【多线程】java多线程Completablefuture 详解【在spring cloud微服务之间调用,防止接口超时的应用】【未完成】
参考地址:https://www.jianshu.com/p/6f3ee90ab7d3 示例: public static void main(String[] args) throws Interr ...
- Java集合类ArrayList循环中删除特定元素
在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java"&g ...
- 《Objective-C开发经典教程》
<Objective-C开发经典教程> 基本信息 原书名:Beginning Objective-C 原出版社: Apress 作者: (美)James Dovey Ash Furr ...
- 20.custom自定义线程池
自定义线程池 1.若Executors工厂类无法满足需求,可以自己使用工厂类创建线程池,底层都是使用了); ThreadPoolExecutor threadPoolExecutor = new Th ...
- OpenCV学习(4) Mat的基本操作(1)
图像在OpenCV中都是通过Mat类来存储的,Mat可以用来表示N维矩阵,当然用的最多的还是二维矩阵. Mat类有两部分组成:第一部分是头信息,这些信息主要用来描述矩阵,比如矩 ...
- OpenMP 线程互斥锁
OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序. 多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互 ...
- Web开发中的6个坏习惯
在 Usersnap,我们在能很好的组织网站开发有超过20(总和)年的经验.我们认为这些过去的经验能让我们很好的分辨出什么是好.坏和丑陋的网站开发.如今我们不想把注意力放在消极的部分,但就这一次,我们 ...
- 使用IntelliJ IDEA开发Spring MVC HelloWorld
https://blog.csdn.net/industriously/article/details/52851588 https://blog.csdn.net/slow_wakler/artic ...
- flex版本问题总结
转自:http://blog.csdn.net/holly_puck/article/details/6690264 最近公司平台在集成工作流时需要设计一个web版的流程定义设计器,初步定下来用Fle ...
- RaceWeb介绍(7):由500强公司数据高速生成百度地图——生成坐标字段及坐标数据
接上篇. 一.生成X坐标.Y坐标两个字段. 我们须要为每一个公司建立X坐标和Y坐标字段,用来保存XY坐标. 既然为了突出"快",这一步就有程序来完毕吧. 右键单击"世界5 ...