JQuery - 如何使用.each连接文本?

时间:2013-02-13 09:53:43

标签: jquery concatenation

首先,请原谅我的英语不好。

我尝试了各种各样的方法,但到目前为止还没有运气。

我正在使用.each()方法返回一系列对象。

我想用对象中的每个值填充输入字段的“value”属性。 我没有找到与PHP相同的方法。=

任何想法都会很棒!

这是我的代码:

$.each($("input[type='checkbox']:checked"), function(){
        var data = $(this).parent().parent().find("td:eq(1)"); 
         $("#login").val(data.text());
    })

2 个答案:

答案 0 :(得分:14)

您可以使用map()。您可以将delimiter字符传递给join()以分隔对象。

text = $("input[type='checkbox']:checked").map( function(){
    return $(this).parent().parent().find("td:eq(1)");        
}).get().join();

$("#login").val(text);

答案 1 :(得分:6)

var c = '';
$.each($("input[type='checkbox']:checked"), function(){
    var data = $(this).parent().parent().find("td:eq(1)"); 
    c += data.text();
})
$("#login").val(c);

你也可以在循环中使用它:

$("#login").val($("#login").val(c)+data.text());

但我个人更喜欢尽量减少DOM的变化。

另请注意,使用parent().parent()之类的遍历会导致维护问题。在你的情况下你可以使用

var data = $(this).closest('tr').find("td:eq(1)"); 

这样,如果span或任何其他元素将来包装您的输入,代码就不会中断。