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实现选择特定楼层回复的更多相关文章

  1. JQUERY 模糊选择

    JQUERY 模糊选择        [属性名称]         匹配包含给定属性的元素      [att=value]       匹配包含给定属性的元素      [att*=value]   ...

  2. jQuery模糊选择

    属性字头选择器(Attribute Contains Prefix Selector) jQuery 属性字头选择器的使用格式是 jQuery(‘[attribute|=value]‘) ,例如 jQ ...

  3. jQuery中获取特定顺序子元素(子元素种类不定)的方法

    提出问题:只已知父元素和父元素中子元素的次序,怎么通过jQuery方法获得该元素? <p>第一部分:</p> <ul> <li>1</li> ...

  4. 贴近用户体验的jQuery日期选择插件

    分享一款贴近用户体验的jQuery日期选择插件.这是一款双日历jQuery日期选择时间插件pickerDateRange.效果图如下: 在线预览   源码下载 var dateRange = new ...

  5. jquery中选择checkbox拼接成字符串,然后到后台拆分取值

    jquery中选择checkbox拼接成字符串,然后到后台拆分取值 js中的代码 $("#btn").click(function(){ var chenked=$("i ...

  6. 基于jQuery商品分类选择提交表单代码

    分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览   源码下载 实现的代码: <div class="yList ...

  7. jQuery应用之(二)使用jQuery管理选择结果(荐)

    使用jQuery选择出来的元素与数组非常类似,可以通过jQuery提供的一系列方法对其进行处理,包括长度.查找某个元素,截取某个段落等. 1.获取元素的个数. 在jQuery中可以通过size()方法 ...

  8. jquery取消选择select下拉框

    有三个select下拉框一个大类,两个小类隐藏,需要在选择大类的时候,小类显示同时清除另外的小类选择的项这需求有点儿.......... 下面是三个select: <select name=&q ...

  9. jquery input选择弹框

    index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

随机推荐

  1. 从Log4j迁移到LogBack的理由

    英文原文:Reasons to prefer logback over log4j 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进.不过尽管难以一一细数,这里还是列举部分理由 ...

  2. windows如何查看删除记录

    方法 打开组策略中的计算机配置-Windows设置-安全设置-本地策略-审核策略的审核对对像防问, 双击出现的对话框中钩选成功和失败,经过上面的设置,现在就可以设置文件和文件夹的审核了.(注须在NTF ...

  3. X11 FRAMEBUFFER QT

    之前对X11 FRAMEBUFFER理解的不够,现在总结一下Qt Embedded是挪威Trolletch公司的图形化界面开发工具Qt的嵌入式版本,它通过QtAPI与LinuxI/O以及Framebu ...

  4. unix简史及应用

    Unix 简史 1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计画:该计画要建立一套多使用者.多任务.多层次(mul ...

  5. PHP 输出数据库中文是问号

  6. 错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use . See online help for details.

    出现这种警告的原因是因为我们没有使用安全的字符串处理函数.如果想屏蔽这种警告,可以使用: 还可以使用其它的方法,参考: https://www.cnblogs.com/gb2013/archive/2 ...

  7. Android Studio调试报错am startservice

    今天下载了一个Android studio2.3.0版本,想调试一下自己的一个项目,但是发现项目编译运行正常,但是一调试就报错: 09/14 16:19:13: Launching app$ adb ...

  8. 网络驱动移植之解析Linux网络驱动的基本框架

    内核源码:linux-2.6.38.8.tar.bz2 概括而言,编写Linux网络驱动其实只要完成两件事即可,一是分配并初始化网络设备,二是注册网络设备. 1.分配并初始化网络设备 动态分配网络设备 ...

  9. 详细记录ASP.NET中的图象处理

    最近做网站时,要求上传能加上水印,就研究了一下相关的功能.推荐一下程序人生的网站,大家也可以写一些开发感悟在上面.在使用ASP的时候,我们时常要借助第三方控件来实现一些图象功能.而现在,ASP.NET ...

  10. 使用OctreeQuantizer提高gdi+绘图质量

    .net中gdi+绘制的图形质量很少,原因是gdi+使用的是256色的. 为了提高绘制图片的质量,可以使用是“Octree“ 算法.“Octree“ 算法允许我们插入自己的算法来量子化我们的图像. 一 ...