Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
()上的jQuery无法删除元素_Jquery_Dynamic - Fatal编程技术网

()上的jQuery无法删除元素

()上的jQuery无法删除元素,jquery,dynamic,Jquery,Dynamic,我正在做一个动态表格来收集乘客的个人数据。 此表上面有一个控件,用于在末尾添加更多行,每一行都是第一行的副本,并且该行的最后一个元素是我用作删除该行的控件的链接 问题是,只有第一行,即不是动态创建的行,是唯一一个实际工作的行,它能够删除自身 因此,由于缺少初始行,页面甚至停止创建新行(但这是xD的另一个问题) 这是我用来删除行的代码: $('.remove').on("click",function(event){ event.preventDefault; $(this).pa

我正在做一个动态表格来收集乘客的个人数据。 此表上面有一个控件,用于在末尾添加更多行,每一行都是第一行的副本,并且该行的最后一个元素是我用作删除该行的控件的链接

问题是,只有第一行,即不是动态创建的行,是唯一一个实际工作的行,它能够删除自身

因此,由于缺少初始行,页面甚至停止创建新行(但这是xD的另一个问题)

这是我用来删除行的代码:

$('.remove').on("click",function(event){
    event.preventDefault;
    $(this).parent().parent().remove();

    //alert(str);
    newRowNum -= 1;
});
如果您需要查看,请访问以下实时站点:

.on()
事件仅绑定到最初在DOM中使用默认语法的元素。如果要将事件委托给其他元素,则需要有第二个选择器。


    <table id="test">
        <tr>
            <td>A</td>
            <td><a>Click</a></td>
        </tr>
         <tr>
            <td>B</td>
            <td><a>Click</a></td>
        </tr>
    </table>

    <p>
        <a id="insert">Copy</a>
    </p>

    <script type="text/javascript">
      $(document).ready(function(){

        $("#test").find("a").click(function(){

          $(this).parents("tr").remove();

        }); 

        $("#insert").click(function(){

          $("#test tr").first().clone(true).appendTo("#test");

        });

      });

   </script>
A.


编辑:将克隆功能添加到小提琴中。

返回到使用克隆技术,但使用.clone(true)以便它也复制事件处理程序。

您可以尝试以下代码:

$("#tabdata").on("click", ".remove", function(event){
    event.preventDefault;
    $(this).parent().parent().remove();
    newRowNum -= 1;
}); 

Marcos,请编辑您的问题,使其包含足够的HTML,以便我们查看.remove元素及其父元素的父元素的外观。请注意,
event.preventDefault
没有任何作用,因为缺少括号(应该是
event.preventDefault()
)。您的代码将仅适用于类为“remove”的元素最初出现在页面中。要将其应用于新元素,您必须将此选择器放在子体部分:
$(选择器).on('click','.remove',function(){…})。请参见下面我的答案。thx,但它没有起作用,它只是执行相同的操作,动态创建的行根本不受影响(@MarcosVargasMoran:我忘了修复我的fiddle链接。现在试试。如果html()???var addRow=$(“#tabdata tbody”),那么它将是克隆。首先().clone();然后追加(addRow)??是的,但别忘了添加true。这意味着它复制样式、数据,最重要的是(在本例中)事件处理程序。当您使用现有代码复制行时,您没有将事件处理程序附加到“删除”按钮。使用.clone(true),您不需要:)dude,我使用clone做了很多尝试,但都没有成功,我选择的答案成功了,使用clone()创建,或者使用简单的html()。不管怎样,thaks for your response我现在使用html()离开;D.不用担心,伙计-只要你让它工作起来,这是最重要的:)我没有明白,但在“长”(不是那么长的xD)文档的末尾,答案是,最后一个例子,创建了新元素,正如你所说的,元素也有能力创建新元素,:D。