JQuery - как объединить текст.каждый?

прежде всего, извините за мой плохой английский.

Я пробовал различные методы, но пока не повезло.

Я возвращаю серию объектов .каждый метод.

Я хотел бы заполнить атрибут "value" входного поля каждым значением из объекта. Я не нашел способ сделать то же самое, что и PHP .=

любая идея была бы великолепна!

вот мой код:

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

2 ответов


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.

обратите внимание также, что использование traversals как parent().parent() привести к проблемам обслуживания. В вашем случае вы могли бы использовать

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

так что код не сломается, если span или любые другие элементы обертывают ваш вход в будущем.


можно использовать map (). Вы можете пройти delimiter символ join () отделить ценности.

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

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