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

sky*_*ner 8 jquery concatenation

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

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

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

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

任何想法都会很棒!

这是我的代码:

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

Adi*_*dil 16

你可以使用map().您可以将delimiter角色传递给join()以分隔对象.

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

$("#login").val(text);
Run Code Online (Sandbox Code Playgroud)

  • 这更优雅,应该是公认的答案. (3认同)

Den*_*ret 8

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

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

$("#login").val($("#login").val(c)+data.text());
Run Code Online (Sandbox Code Playgroud)

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

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

var data = $(this).closest('tr').find("td:eq(1)"); 
Run Code Online (Sandbox Code Playgroud)

因此,如果一个span或任何其他元素将来包装您的输入,代码将不会中断.