我正在使用RoR和AJAX创建帖子。所以我需要能够通过以前的id添加“答案” 每次提交按钮时都会点击以下代码
$("<%= selector %>").append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");
其中
selector
看起来像#answer-12
newanswer
将为#answer-13
第一次按建议工作,但是当我第二次单击提交时,我需要使用已附加的#answer-13
div来追加新#answer-14
,但它不起作用。我理解该文档不知道第一个附加元素,但不知道如何解决此问题。谢谢你的帮助。
已更新
我使用编辑和销毁链接渲染新的answer
,所以我不仅需要能够附加的功能,而且可以与添加的元素完全交互
答案 0 :(得分:2)
您还可以为所有答案创建一个包装div,因为append会添加到当前所选元素的末尾。
所以$('#answer-div').append(etc.....
而不是$('#specific-answer').append(etc...
答案 1 :(得分:1)
将所有答案分类,然后选择最后一个:
$('.theClass:last').append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");
或者使用它:
$('[id^="answer-"]:last').append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");
<强>的jQuery( '[属性^ = “值”]')强>
attribute
- 属性名称
value
- 属性值。可以是不带引号的单个单词或带引号的字符串。
答案 2 :(得分:0)
我可以建议您可以在DOM中放置最新使用的ID:
var appendTo = $('#append-to');
var appendToId = appendTo.attr('latest');
$( '#' + appendToId ).append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");
appendTo.attr( 'latest', '<%= newanswer %>' );