Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 如何获取对动态添加元素的引用?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何获取对动态添加元素的引用?

Javascript 如何获取对动态添加元素的引用?,javascript,jquery,html,Javascript,Jquery,Html,以下代码旨在将元素插入已存在的元素之前的

以下代码旨在将
元素插入已存在的
元素之前的
中,然后在新插入的
元素下方插入一个表(以便该表显示在两个
元素之间):

$(“#para1”)。在(“

”+printDate+“

”)之前; 美元(“#para2”)。在(“)之后;
但是,当我尝试向新插入的表中添加一行时,如下所示:

$("#table").prepend("<tr><td>asdfasf</td></tr>");
$(“#表”).prepend(“asdfasf”);
该行总是添加到位于id为para2的
元素前面的另一个表(具有不同的id)。这种奇怪行为的原因可能是什么

这是DOM检查器的快照。id为
21-09-2014
的表格如何位于两个不同的位置

编辑
你们都是对的。我之前添加了一个具有相同id的空表,并认为它不在那里,因为我看不到它。那小子花了我5个小时的工资

将条目添加到其他表中的主要问题可能是页面中存在重复的
ids
。如果这里有重复的id,id选择器将返回带有id的第一个元素

要获取对新添加元素的引用,请分别使用and而不是and

var $para = $("<p id = 'para2'>" + printDate + "</p>").insertBefore('#para1');

var $table = $("<table id = 'table'></table>").insertAfter('#para2');
$table.append("<tr><td>asdfasf</td></tr>");
var$para=$(“

”+printDate+“

”)。插入之前('#para1'); var$table=$(“”)。insertAfter('#para2'); $table.append(“asdfasf”);
您要在表前加前缀吗?你不应该使用

$('#table tr:last').after('<tr><td>asdfasf</td></tr>');
$('#table tr:last')。在('asdfasf')之后;
相反

或者:第一次和之前?

$(“#para1”)。在(“

具有id='para2'的新p元素

”)之前; $(“#para2”)。之后(“第二行”); $(“#表”).prepend(“新行内部#表,它将是第一行”)

已存在的具有不同id的表

第1段

否,该表具有不同的id重复id应该是发生这种情况的唯一原因。你能在JSFIDLE或其他东西中重现这个问题吗?如果没有HTML(JSFIDLE或
代码片段
),这主要是猜测,因为你的代码肯定会工作(如果你在页面上没有重复的ID)。编写代码时,这是不可能的,是你正在使用的实际代码吗?不要在“=”周围使用空格登录HTML attributes.OP表示它们有不同的ID。我希望它显示为表中的第一行。这样可以吗?试着tr:首先,在这之前,这应该是答案。使用append无法将行正确添加到表中。您可以执行if:if($('#table tr')。长度==0{($(“#table tbody”))。appendTo($('#table tbody'))
$('#table tr:last').after('<tr><td>asdfasf</td></tr>');