9

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

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

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

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

任何想法都会很棒!

这是我的代码:

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

2 回答 2

18

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

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

$("#login").val(text);
于 2013-02-13T09:55:55.503 回答
12
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以便将来如果 a或任何其他元素包装您的输入,则代码不会中断。

于 2013-02-13T09:54:51.290 回答