有点卡住尝试在Jquery中实现某些功能,并想知道是否有人可以提供帮助..
我正在创建我自己的编辑就地功能,您可以在其中单击编辑按钮,我的定义列表的内容将被替换为表格...预填充数据。与this
类似除了标记每个可编辑部分(用户注释)之外,一切都很好,并且可以有多个标记,就像在stackoverflow上一样...所以我的HTML输出每个注释的标记就是这样
<dl id='comment_id'>
<dt class="comment title">#i.getsTitle()#</a></dt>
// Other info
<dd class="categories">
<dl>
<dt>Tags:</dt>
<cfloop array="#i.getCategory()#" index="ii">
<dd class="category"><a href="">#ii.getsCategory()#</a></dd>
</cfloop>
</dl>
</dd>
所以我将我的类别或标签嵌套在一个由循环控制的定义列表中。
到目前为止我尝试做的是使用Jquery获取这些catergories的内容,这样当您单击编辑时,类别表单字段将预先填充该注释的现有标记....
$('.edit').click(function(){
// Grab the text for all categories
var sCategory = $(this).parents('dl').find('dd.categories dl dd.category').text();
//Build a form and prefill the category form field with the sCategory Variable
form + '' // Other Data to build form
form += '<dl><input name="sCategory" type="text" value="' + sCategory + '" /></dl>'
// Show edit form prefilled with appropriate content
$('dl#comment_id).(form);
这样可行,但它显示了该条目彼此相邻的所有类别,没有空格....例如“JqueryColdfusionValidation”。想知道如何将其显示为“JqueryColdfusionValidation”....我猜这里需要.each函数,但有点坚持如何实现
非常感谢
答案 0 :(得分:25)
Map()对这类事情有好处。试试这个:
var sCategory = $(this).parents('dl').find('dd.categories dl dd.category').map(function() {
return $(this).text();
}).get().join(' ');
答案 1 :(得分:1)
添加任何内容的最简单方法:
var sCategory = '';
$(this).parents('dl').find('dd.categories dl dd.category').each(function(){
sCategory+=' '+$(this).text()+' ';
})