Jquery 为多个元素属性分配。每个?

Jquery 为多个元素属性分配。每个?,jquery,attributes,each,Jquery,Attributes,Each,因此,我有下表,我想在向表中添加行时将所有name属性设置为一个新值。(您可能猜到了:我使用按钮添加和删除行,并根据行索引计算新的名称属性) 您的选择器似乎不正确。您的表没有id“orderstable”,也没有这将获取最后一行和所有输入表单元素。然后您可以通过$(this.attr('name') 在。每个函数中,需要使用参数获取元素并查找输入: $("#orderstable > tbody > tr > td > img[id=add_]").click( func

因此,我有下表,我想在向表中添加行时将所有name属性设置为一个新值。(您可能猜到了:我使用按钮添加和删除行,并根据行索引计算新的名称属性)


您的选择器似乎不正确。您的表没有id“orderstable”,也没有

这将获取最后一行和所有输入表单元素。然后您可以通过
$(this.attr('name')


。每个
函数中,需要使用参数获取元素并查找输入:

$("#orderstable > tbody > tr > td > img[id=add_]").click( function(event){
        var row = $(this).closest("tr").get(0);
        var rowCopy=$(row).clone(true);
        $(row).closest("tbody").append(rowCopy);

        $('#orderstable tbody>tr:last>td :input').each(function(i, e){
                var n = $(e).attr('name');
            alert(n);
                        }).val = "test";
        row.className+="add_";
});

是的。。。我试图把职位限制在最低限度。我添加了它,问题是第一个td中没有输入元素,所以它是未定义的,最后一个td包含一个select而不是input。因此,查找一个输入将无法一致地工作。公平地说,这是一个简单的解决方法-将
:input
添加到选择器,然后删除
find
方法。这非常有效。谢谢对不起,我不能投赞成票。。。没有足够的代表点。鉴于上面的swatkins帖子,为什么这里的输入
(“#orderstable tr:last td:input')
获取所有输入元素,包括select,而另一篇帖子没有
$(e).find('input').attr('name')
?Is
find('input')
通过标记名获取输入元素。伪选择器
:input
选择所有输入、文本区域、选择和按钮元素。
$("#orderstable > tbody > tr > td > img[id=add_]").click( function(event){
            var row = $(this).closest("tr").get(0);
            var rowCopy=$(row).clone(true);
            $(row).closest("tbody").append(rowCopy);

            $('#orderstable tbody>tr:last>td').each(function(){
                            $(this.input).attr(name);
                            }).val = "test";
            row.className+="add_";
$('#orderstable tr:last td :input').each(function(){
   $(this).attr('name', 'setyournamehere')
})
$("#orderstable > tbody > tr > td > img[id=add_]").click( function(event){
        var row = $(this).closest("tr").get(0);
        var rowCopy=$(row).clone(true);
        $(row).closest("tbody").append(rowCopy);

        $('#orderstable tbody>tr:last>td :input').each(function(i, e){
                var n = $(e).attr('name');
            alert(n);
                        }).val = "test";
        row.className+="add_";
});