Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery在单击按钮时添加两个或多个具有相同ID的行_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用jQuery在单击按钮时添加两个或多个具有相同ID的行

Javascript 如何使用jQuery在单击按钮时添加两个或多个具有相同ID的行,javascript,jquery,html,Javascript,Jquery,Html,我有一个表,其中包含从API获取的产品列表,下面的表是一个按钮。我试图实现仅使用第一个表中具有产品行ID的tr元素追加另一个表。 我正在使用find方法,它可以工作,但我不能一次添加所有内容,所以我必须单击每行的按钮。但当我将tr作为参数放入find方法中时,它就起作用了。所以我的问题是如何一次附加另一个表,其中包含具有特定ID的所有行 $("#tableBody").on("click", "#addToAspect", function(){ // #addToAspect is I

我有一个表,其中包含从API获取的产品列表,下面的表是一个按钮。我试图实现仅使用第一个表中具有产品行ID的tr元素追加另一个表。 我正在使用find方法,它可以工作,但我不能一次添加所有内容,所以我必须单击每行的按钮。但当我将tr作为参数放入find方法中时,它就起作用了。所以我的问题是如何一次附加另一个表,其中包含具有特定ID的所有行

$("#tableBody").on("click", "#addToAspect", function(){
    // #addToAspect is ID of button
    var row = $("#tableBody").find("#product-row"); // this is ID of row
   $("#aspectTable").append(row); // #aspectTable is second table

})
页面上只有一个唯一ID-这是必需的

变量行=$tableBody.findproduct-row;-将始终只返回ID=产品行的第一个找到的元素

可以用class.product行替换产品行吗? 如果您无法对代码执行任何操作,我建议您这样使用:

$("#tableBody tr").each(function(index, elem){
    if(elem.attr('ID') === 'product-row'){
        $("#aspectTable").append(elem);
    }
});

不能这样做,因为ID在dom中应该是唯一的。因此,jquery将始终返回具有该id的第一个匹配元素。您可以使用tr或class属性代替。正如@palaѕѕѕѕ所写,您应该使用类来匹配多个元素,然后循环它们并将它们添加到另一个表中。在添加dom中已经存在的元素时也要小心,因为这通常只会移动它们,除非这是您真正想要的。所以以前克隆过它们。谢谢,现在可以了。我用class.product行进行了更改