2010-02-22 35 views
9

chút khó khăn cố gắng để đạt được điều gì đó trong Jquery và tự hỏi nếu có ai có thể giúp ..Jquery: CONCATENATE giá trị từ hai yếu tố

tôi đang tạo ra chỉnh sửa của riêng tôi trong chức năng nơi, nơi bạn bấm vào một nút chỉnh sửa, và nội dung của danh sách định nghĩa của tôi được hoán đổi cho biểu mẫu ... điền sẵn dữ liệu. Tương tự như this

Tất cả đều tốt ngoài mỗi phần có thể chỉnh sửa (nhận xét của người dùng) được gắn thẻ và có thể có nhiều thẻ, giống như ở đây trên stackoverflow ... Vì vậy, HTML của tôi xuất thẻ cho mỗi nhận xét là như vậy

<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> 

Vì vậy, tôi tổ loại hoặc thẻ của tôi trong một danh sách định nghĩa, điều khiển bởi một vòng lặp.

Những gì tôi đã cố gắng thực hiện cho đến nay là lấy nội dung của các mục này bằng cách sử dụng Jquery, để khi bạn nhấp để chỉnh sửa, trường biểu mẫu danh mục sẽ được điền sẵn với các thẻ hiện tại cho nhận xét đó ....

$('.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); 

Công trình này, nhưng nó hiển thị tất cả các danh mục cho mục nhập đó cạnh nhau, không có dấu cách .... ví dụ "JqueryColdfusionValidation". Đã tự hỏi làm thế nào để hiển thị nó như vậy "JqueryColdfusionValidation" .... Im đoán chức năng .each được yêu cầu ở đây, nhưng một chút khó khăn về cách thực hiện

Rất cám ơn

Trả lời

24

Map() là tốt cho loại Điều. Hãy thử điều này:

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

Thats làm việc như một vẻ đẹp, cảm ơn rất nhiều sự giúp đỡ của bạn – namtax

+0

Bạn đang rất hoan nghênh. Chỉ cần đừng quên nhấp vào hộp kiểm. : o) – user113716

+0

sai lầm của tôi, quên để làm điều đó ... tất cả được thực hiện – namtax

1

Cách dễ nhất để thêm bất cứ điều gì xung quanh:

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

Làm thế nào là dễ dàng hơn bằng cách sử dụng bản đồ()? Thêm vào đó bạn kết thúc với không gian thừa ở đầu và cuối của chuỗi. – user113716

Các vấn đề liên quan