0

我正在使用带有 AJAX 的 RoR 来创建帖子。所以我需要能够通过以前的 id 添加“答案”。
每次提交按钮点击下面的代码被调用

$("<%= selector %>").append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");


selector看起来像这样#answer-12
newanswer的地方#answer-13

第一次它按建议工作,但是当我第二次单击提交时,我需要使用已经附加#answer-13的 div 来追加新#answer-14的,它不起作用。我了解该文档不知道第一个附加元素,但不知道如何解决此问题。谢谢你的帮助。

更新 我使用编辑和销毁链接呈现新answer的,所以我不仅需要能够附加可以解决的问题,而且还需要与添加的元素完全交互

4

3 回答 3

2

您还可以为所有答案创建一个包装 div,因为 append 添加到当前选定元素的末尾。

所以有$('#answer-div').append(etc.....

代替$('#specific-answer').append(etc...

于 2012-05-16T13:40:21.067 回答
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"]')
attribute - 属性名称。
value- 一个属性值。可以是不带引号的单个单词或带引号的字符串。

于 2012-05-16T13:09:07.680 回答
0

我可以提出一个建议,您可以将您最近使用的 ID 放在 DOM 中的某个位置:

var appendTo = $('#append-to');    
var appendToId = appendTo.attr('latest');
$( '#' + appendToId ).append("<div id='<%= newanswer %>'><%= escape_javascript(render('answer_layout')) %></div>");

appendTo.attr( 'latest', '<%= newanswer %>' );
于 2012-05-18T16:45:40.490 回答