【问题标题】:Jquery : Concatenate Values From Two ElementsJquery:连接两个元素的值
【发布时间】:2010-02-22 21:51:21
【问题描述】:

有点卡住尝试在 Jquery 中实现某些东西,想知道是否有人可以提供帮助..

我正在创建自己的就地编辑功能,您可以在其中单击一个编辑按钮,然后我的定义列表的内容将被交换为一个表单......预填充了数据。类似于this

除了每个可编辑部分(用户 cmets)都被标记之外,一切都很好,并且可以有多个标签,就像 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 获取这些类别的内容,这样当您单击编辑时,类别表单字段将预填充该评论的现有标签......

$('.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 函数,但在如何实现上有点卡住

非常感谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    Map() 适合这种事情。试试这个:

    var sCategory = $(this).parents('dl').find('dd.categories dl dd.category').map(function() {
      return $(this).text();
    }).get().join(' ');
    

    【讨论】:

    • 效果不错,非常感谢您的帮助
    • 不客气。只是不要忘记单击复选框。 :o)
    【解决方案2】:

    添加任何东西的最简单方法:

    var sCategory = '';
    $(this).parents('dl').find('dd.categories dl dd.category').each(function(){
    sCategory+=' '+$(this).text()+' ';
    })
    

    【讨论】:

    • 这比使用 map() 更容易吗?另外,您最终会在字符串的开头和结尾出现多余的空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多