如何获取最接近父类的表单元素.jQuery
How to get closest form element of parent class. jQuery
我正试图在博客评论中添加投票按钮。我循环浏览每个评论,如下所示:
.row
for comment in Comments
.row
p #{comment}
.votecell(style='width:30px;float:left;margin-left: 15px;')
.voteUp(id='#{comment.id}', style='margin-bottom: -17px;') ▲
form.form-horizontal(id='voteUp', enctype="multipart/form-data", method='POST')
input(type='hidden', name='_csrf', value=_csrf)
input(type='hidden', name='commentID', value='#{comment.id}')
<br>
然后使用jQuery,我尝试提交表单,该表单是所单击按钮的子项。
$(".voteUp").click(function () {
var form = $(this).closest(".form-horizontal")
$(function(){
$.ajax({
url: '/voteUp', //the URL to your node.js server that has data
type: 'POST',
data: form.serialize()
}).done(function(data){
});
});
});
问题是,无论单击哪个voteUp按钮,它总是从页面上的第一条评论提交表单。我知道这是因为在jQuery$(this)==this[0]中,但我不确定还有哪些其他选项可用于引用单击的对象。有人知道我如何获取点击按钮的子窗体吗?
以下是html输出的样子:
<div id="5463ce6bd6e5e5d403e80b3f" style="margin-bottom: -17px;" class="voteUp">
▲
<form enctype="multipart/form-data" method="POST" class="form-horizontal">
<input type="hidden" name="_csrf" value="4JbLbnEcRvq7ZuAhpZCXavMq7JW/vnIZlxW/o=">
<input type="hidden" name="commentID" value="5463ce6bd6e5e5d403e80b3f">
</form>
</div>
您可以尝试使用.next()方法。
$('.voteUp').next('.form-horizontal')
这将选择下一个具有水平类形式的元素,并且仅此而已。
这是文档-看看它是否是您所需要的。http://api.jquery.com/next/
因此,主要问题是在DOM树中以错误的方向遍历。
closest()
从当前选择器开始,在树中查找祖先,但您希望查找后代。
只需使用find()
而不是closest()
参考文献:
关闭()API文档
find()API文档
尝试使用子项而不是最近的项。http://jsfiddle.net/hLraqdq1/
$(".voteUp").click(function () {
var form = $(this).children(".form-horizontal");
$(function(){
$.ajax({
url: '/voteUp', //the URL to your node.js server that has data
type: 'POST',
data: form.serialize()
}).done(function(data){
});
});
});
相关文章:
- JQuery:如何检查某个类的所有复选框是否都在表单中选中
- 基于类的单击事件在10行之后不响应-数据表
- 在jQuery中的IFrame中提交表单后刷新父窗口
- 如何在单击父类的另一个子类时获取子类的值
- 如何使表单类而不是id的序列化工作
- 在模板中为Django表单分离媒体类对象的JS和CSS列表输出
- 单击单选按钮,添加/删除表单元素的类
- 在每个循环中的表单上使用嵌套资源和html类Rails Ajax
- 按类计算表单值
- 我试图使用引导模式类来制作一个弹出注册表单,但弹出没有'不起作用
- 使用JavaScript/Jquery在Ruby中显示具有相同id/类的表单
- 如何在新窗口中提交表单,然后重定向父页面
- 向表单验证器添加类
- 单击父类中的任何内容时,从父类中删除该类
- Javascript表单提交打开新窗口选项卡,然后重定向父页面
- jQuery - 如果提交的表单为空,则添加自定义 css 类
- 加载表单时在警报框中显示父联系人任务
- PHP 注册类与前端表单连接起来
- 如何获取最接近父类的表单元素.jQuery
- 从表单中获取具有特定类的父标记的id